Access-Control-Allow-Headers

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

* Some parts of this feature may have varying levels of support.

Access-Control-Allow-Headers 回應標頭用於回應包含 Access-Control-Request-Headers預檢請求,以指示實際請求中可以使用哪些 HTTP 標頭。

如果請求包含 Access-Control-Request-Headers 標頭,此標頭是必需的。

備註: 列入 CORS 白名單的請求標頭總是允許的,通常不會列在 Access-Control-Allow-Headers 中(除非有必要繞過安全名單的附加限制)。

標頭類型 回應標頭
禁止修改的標頭

語法

http
Access-Control-Allow-Headers: [<header-name>[, <header-name>]*]
Access-Control-Allow-Headers: *

指令

<header-name>

支援的請求標頭名稱。標頭可以列出任意數量的標頭名稱,以逗號分隔。

*(萬用字元)

* 僅在無憑證的請求(無 HTTP cookie 或 HTTP 認證資訊的請求)中作為特別的萬用字元值。在有憑證的請求中,它被視為字面標頭名稱 *,沒有特別語意。請注意,Authorization 標頭不能使用萬用字元,必須明確列出。

範例

自訂標頭

以下是 Access-Control-Allow-Headers 標頭的範例。它表示伺服器支持 CORS 請求中名為 X-Custom-Header 的自訂標頭(除了列入 CORS 白名單的請求標頭之外)。

http
Access-Control-Allow-Headers: X-Custom-Header

多個標頭

此範例顯示 Access-Control-Allow-Headers 支援多個標頭時的寫法。

http
Access-Control-Allow-Headers: X-Custom-Header, Upgrade-Insecure-Requests

繞過附加限制

儘管 CORS 安全名單請求標頭總是允許的,且通常不需要列在 Access-Control-Allow-Headers 中,但將它們列出仍可以繞過適用的附加限制

http
Access-Control-Allow-Headers: Accept

預檢請求範例

以下是包含 Access-Control-Allow-Headers預檢請求範例。

請求

首先是請求。預檢請求是包含一些預檢請求標頭的 OPTIONS 請求:Access-Control-Request-MethodAccess-Control-Request-HeadersOrigin

以下的預檢請求告訴伺服器我們希望發送包含 Access-Control-Request-HeadersContent-TypeX-Requested-With)標頭的 CORS GET 請求。

http
OPTIONS /resource/foo
Access-Control-Request-Method: GET
Access-Control-Request-Headers: content-type,x-requested-with
Origin: https://foo.bar.org

回應

如果預檢請求所指示的 CORS 請求被授權,伺服器將回應一個消息,指示允許的來源、方法和標頭。以下回應中,Access-Control-Allow-Headers 包含了所請求的標頭。

http
HTTP/1.1 200 OK
Content-Length: 0
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Allow-Headers: Content-Type, x-requested-with
Access-Control-Max-Age: 86400

如果請求的方法不被支持,伺服器將回應錯誤。

規範

Specification
Fetch
# http-access-control-allow-headers

瀏覽器相容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Access-Control-Allow-Headers
Authorization header is not covered by wildcard
Wildcard (*)

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
User must explicitly enable this feature.

參見