預設情況下,網頁只能讀取同源的回應。要讓網頁讀取另一個 origin 的回應,伺服器必須用 Access-Control-Allow-* 標頭主動放行。瀏覽器負責強制執行:若標頭沒允許你的 origin,即使伺服器有回,瀏覽器仍擋下讀取。
非簡單請求(自訂標頭、JSON 主體、或 GET/HEAD/POST 以外的方法)會先送 OPTIONS 預檢;伺服器必須允許該 method 與標頭,實際請求才會發出。當請求帶 credentials 時,萬用字元全部失效:Access-Control-Allow-Origin 必須是明確的 origin(不能是 *),且 Access-Control-Allow-Credentials 必須為 true。這個「精確配對」正是最常見的 CORS 錯誤。
關於這個主題的常見疑問與實用解答。
伺服器確實有回,但瀏覽器因為 Access-Control-Allow-* 標頭沒允許你的 origin(或 method、標頭)而拒絕把回應交給你的網頁。本工具會指出到底缺哪個標頭。
對非簡單請求,瀏覽器會先送一個 OPTIONS 請求,問伺服器這個 method 與標頭准不准。只有預檢通過,實際請求才會發出。
基於安全,當請求帶 cookie 或授權時,瀏覽器禁止使用萬用字元。你必須回傳精確的 origin,並加上 Access-Control-Allow-Credentials: true。
不會。它是純規則引擎,完全在你的瀏覽器中運算,不發任何網路請求,你輸入的內容也不會離開你的裝置。