Access-Control-Allow-Credentials

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.

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);

規範

Specification
Fetch Standard
# http-access-control-allow-credentials

瀏覽器相容性

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-Credentials

Legend

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

Full support
Full support

參見