Access-Control-Allow-Origin 頭

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

HTTP Access-Control-Allow-Origin 響應頭指示響應是否可以與來自給定的請求程式碼共享。

頭型別 響應頭
禁止請求頭

語法

http
Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>
Access-Control-Allow-Origin: null

指令

* (萬用字元)

允許來自任何源的請求程式碼訪問資源。對於不帶憑據的請求,可以將文字值*指定為萬用字元。嘗試將萬用字元與憑據一起使用會導致錯誤

<源>

指定單個源。如果伺服器支援來自多個源的客戶端,它必須返回發起請求的特定客戶端的源。

null

指定源“null”。

注意:不應使用值null。返回Access-Control-Allow-Origin: "null"可能看起來很安全;然而,使用非分層方案(例如data:file:)的資源的源以及沙盒文件的源會序列化為null。許多瀏覽器將授予此類文件訪問帶有Access-Control-Allow-Origin: null頭的響應的許可權,並且任何源都可以建立一個帶有null源的惡意文件。因此,應避免對Access-Control-Allow-Origin頭使用null值。

示例

指示瀏覽器允許來自任何源的程式碼訪問資源的響應將包含以下內容

http
Access-Control-Allow-Origin: *

指示瀏覽器允許來自源https://mdn.club.tw的請求程式碼訪問資源的響應將包含以下內容

http
Access-Control-Allow-Origin: https://mdn.club.tw

將可能的Access-Control-Allow-Origin值限制為一組允許的源需要在伺服器端編寫程式碼,以檢查Origin請求頭的值,將其與允許的源列表進行比較,然後如果Origin值在列表中,則將Access-Control-Allow-Origin值設定為與Origin值相同的值。

CORS 和快取

假設伺服器傳送的響應中的Access-Control-Allow-Origin值是明確的源(而不是*萬用字元)。在這種情況下,響應還應包含一個帶有值OriginVary響應頭,以指示瀏覽器伺服器響應可能因Origin請求頭的值而異。

http
Access-Control-Allow-Origin: https://mdn.club.tw
Vary: Origin

規範

規範
Fetch
# http-access-control-allow-origin

瀏覽器相容性

另見