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 頭可能是什麼樣子的示例。它指示名為 X-Custom-Header 的自定義頭受伺服器 CORS 請求的支援(除了 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-Headers 中列出的頭(Content-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

如果請求的方法不受支援,則伺服器將返回錯誤。

規範

規範
獲取標準
# http-access-control-allow-headers

瀏覽器相容性

BCD 表格僅在啟用 JavaScript 的瀏覽器中載入。

另請參閱