Access-Control-Allow-Credentials header
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.
Der HTTP-Access-Control-Allow-Credentials
-Antwort-Header teilt Browsern mit, ob der Server das Einbeziehen von Anmeldeinformationen in Cross-Origin-HTTP-Anfragen erlaubt.
Anmeldeinformationen umfassen Cookies, Transport Layer Security (TLS)-Client-Zertifikate oder Authentifizierungs-Header, die einen Benutzernamen und ein Passwort enthalten. Standardmäßig werden diese Anmeldeinformationen nicht in Cross-Origin-Anfragen gesendet, da dies eine Website anfällig für Cross-Site Request Forgery (CSRF)-Angriffe machen kann.
Ein Client kann auf verschiedene Weise verlangen, dass Anmeldeinformationen in abteilungsübergreifende Anfragen einbezogen werden:
- Verwendung von
fetch()
, indem diecredentials
-Option auf"include"
gesetzt wird. - Verwendung von
XMLHttpRequest
, indem dieXMLHttpRequest.withCredentials
-Eigenschaft auftrue
gesetzt wird. - Verwendung von
EventSource()
, indem dieEventSource.withCredentials
-Eigenschaft auftrue
gesetzt wird.
Wenn Anmeldeinformationen einbezogen werden:
- Für Preflighted-Anfragen: Die Preflight-Anfrage enthält keine Anmeldeinformationen.
Wenn die Antwort des Servers auf die Preflight-Anfrage den
Access-Control-Allow-Credentials
-Header auftrue
setzt, wird die tatsächliche Anfrage Anmeldeinformationen enthalten; andernfalls meldet der Browser einen Netzwerkfehler. - Für nicht-preflighted Anfragen: Die Anfrage wird Anmeldeinformationen enthalten, und wenn die Antwort des Servers den
Access-Control-Allow-Credentials
-Header nicht auftrue
setzt, meldet der Browser einen Netzwerkfehler.
Header-Typ | Antwort-Header |
---|---|
Verbotene Anforderungs-Header | Nein |
Syntax
Access-Control-Allow-Credentials: true
Direktiven
true
-
Der Server erlaubt, dass Anmeldeinformationen in Cross-Origin-HTTP-Anfragen einbezogen werden. Dies ist der einzige gültige Wert für diesen Header und ist case-sensitive. Wenn Sie keine Anmeldeinformationen benötigen, lassen Sie diesen Header vollständig weg, anstatt seinen Wert auf
false
zu setzen.
Beispiele
Erlauben von Anmeldeinformationen:
Access-Control-Allow-Credentials: true
Verwendung von fetch()
mit Anmeldeinformationen:
fetch(url, {
credentials: "include",
});
Verwendung von XMLHttpRequest
mit Anmeldeinformationen:
const xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/", true);
xhr.withCredentials = true;
xhr.send(null);
Spezifikationen
Specification |
---|
Fetch # http-access-control-allow-credentials |