Access-Control-Allow-Credentials
Access-Control-Allow-Credentials 響應頭告訴瀏覽器伺服器是否允許跨源 HTTP 請求包含憑據。
憑據包括 Cookie、TLS 客戶端證書或包含使用者名稱和密碼的身份驗證頭。預設情況下,這些憑據不會在跨源請求中傳送,這樣做可能會使站點容易受到 CSRF 攻擊。
客戶端可以通過幾種方式請求在跨站點請求中包含憑據
- 使用
fetch(),透過將credentials選項設定為"include"。 - 使用
XMLHttpRequest,透過將XMLHttpRequest.withCredentials屬性設定為true。 - 使用
EventSource(),透過將EventSource.withCredentials屬性設定為true。
如果客戶端已請求包含憑據
- 如果請求是 預檢請求,則預檢請求不包含憑據。如果伺服器對預檢請求的響應將
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 表格僅在瀏覽器中載入