Access-Control-Allow-Credentials

Access-Control-Allow-Credentials 響應頭告訴瀏覽器伺服器是否允許跨源 HTTP 請求包含憑據。

憑據包括 Cookie、TLS 客戶端證書或包含使用者名稱和密碼的身份驗證頭。預設情況下,這些憑據不會在跨源請求中傳送,這樣做可能會使站點容易受到 CSRF 攻擊。

客戶端可以通過幾種方式請求在跨站點請求中包含憑據

如果客戶端已請求包含憑據

  • 如果請求是 預檢請求,則預檢請求不包含憑據。如果伺服器對預檢請求的響應將 Access-Control-Allow-Credentials 標頭設定為 true,則實際請求將包含憑據:否則,瀏覽器會報告網路錯誤。
  • 如果請求不是預檢請求,則請求將包含憑據,如果伺服器的響應未將 Access-Control-Allow-Credentials 標頭設定為 true,則瀏覽器會報告網路錯誤。
頭型別 響應頭
禁止的頭名稱

語法

http
Access-Control-Allow-Credentials: true

指令

true

此標頭的唯一有效值為 true(區分大小寫)。如果您不需要憑據,請完全省略此標頭(而不是將其值設定為 false)。

示例

允許憑據

http
Access-Control-Allow-Credentials: true

使用帶有憑據的 fetch()

js
fetch(url, {
  credentials: "include",
});

使用帶有憑據的 XMLHttpRequest

js
const xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/", true);
xhr.withCredentials = true;
xhr.send(null);

規範

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

瀏覽器相容性

BCD 表格僅在瀏覽器中載入

另請參閱