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.
Der HTTP-Access-Control-Allow-Credentials
-Antwort-Header teilt Browsern mit, ob der Server erlaubt, dass Anmeldeinformationen in Cross-Origin-HTTP-Anfragen eingeschlossen werden.
Anmeldeinformationen umfassen Cookies, Transport Layer Security (TLS)-Client-Zertifikate oder Authentifizierungs-Header, die einen Benutzernamen und ein Passwort enthalten. Standardmäßig werden diese Anmeldeinformationen in Cross-Origin-Anfragen nicht 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 Cross-Site-Anfragen eingeschlossen werden:
- Verwenden von
fetch()
, indem diecredentials
-Option auf"include"
gesetzt wird. - Verwenden von
XMLHttpRequest
, indem dieXMLHttpRequest.withCredentials
-Eigenschaft auftrue
gesetzt wird. - Verwenden von
EventSource()
, indem dieEventSource.withCredentials
-Eigenschaft auftrue
gesetzt wird.
Wenn Anmeldeinformationen eingeschlossen sind:
- Für vorausgeprüfte Anfragen: Die vorausgehende Anfrage enthält keine Anmeldeinformationen.
Wenn die Serverantwort auf die vorausgehende 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 vorausgeprüfte Anfragen: Die Anfrage wird Anmeldeinformationen enthalten, und wenn die Serverantwort den
Access-Control-Allow-Credentials
-Header nicht auftrue
setzt, meldet der Browser einen Netzwerkfehler.
Header-Typ | Antwort-Header |
---|---|
Verbotener Anforderungs-Header | Nein |
Syntax
Access-Control-Allow-Credentials: true
Direktiven
true
-
Der Server erlaubt, dass Anmeldeinformationen in Cross-Origin-HTTP-Anfragen eingeschlossen werden. Dies ist der einzige gültige Wert für diesen Header und ist case-sensitive. Falls Sie keine Anmeldeinformationen benötigen, lassen Sie diesen Header vollständig weg, anstatt den Wert auf
false
zu setzen.
Beispiele
Anmeldeinformationen erlauben:
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 |
Browser-Kompatibilität
BCD tables only load in the browser