Access-Control-Allow-Headers

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 Standard
# http-access-control-allow-headers

瀏覽器相容性

BCD tables only load in the browser

參見