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 Juli 2015.
Der HTTP Access-Control-Allow-Credentials Response-Header teilt den Browsern mit, ob der Server erlaubt, dass Anmeldedaten in Cross-Origin-HTTP-Anfragen eingeschlossen werden.
Anmeldedaten umfassen Cookies, Transport Layer Security (TLS) Client-Zertifikate oder Authentifizierungsheader, die einen Benutzernamen und ein Passwort enthalten. Standardmäßig werden diese Anmeldedaten nicht in Cross-Origin-Anfragen gesendet, da dies eine Seite anfällig für Cross-Site Request Forgery (CSRF) Angriffe machen kann.
Ein Client kann auf mehrere Arten darum bitten, dass Anmeldedaten in Cross-Site-Anfragen einbezogen werden:
- Verwendung von
fetch(), indem diecredentialsOption auf"include"gesetzt wird. - Verwendung von
XMLHttpRequest, indem dieXMLHttpRequest.withCredentialsEigenschaft auftruegesetzt wird. - Verwendung von
EventSource(), indem dieEventSource.withCredentialsEigenschaft auftruegesetzt wird.
Wenn Anmeldedaten einbezogen werden:
- Für Preflighted Anfragen: Die Vorab-Anfrage enthält keine Anmeldedaten.
Wenn die Server-Antwort auf die Vorab-Anfrage den
Access-Control-Allow-CredentialsHeader auftruesetzt, wird die tatsächliche Anfrage Anmeldedaten enthalten; andernfalls meldet der Browser einen Netzwerkfehler. - Für nicht vorabgeprüfte Anfragen: Die Anfrage enthält Anmeldedaten, und wenn die Server-Antwort den
Access-Control-Allow-CredentialsHeader nicht auftruesetzt, meldet der Browser einen Netzwerkfehler.
| Header-Typ | Response-Header |
|---|
Syntax
Access-Control-Allow-Credentials: true
Direktiven
true-
Der Server erlaubt, dass Anmeldedaten in Cross-Origin HTTP-Anfragen enthalten sind. Dies ist der einzige gültige Wert für diesen Header und ist groß- und kleinschreibungssensitiv. Wenn Sie keine Anmeldedaten benötigen, lassen Sie diesen Header vollständig weg, anstatt seinen Wert auf
falsezu setzen.
Beispiele
Anmeldedaten erlauben:
Access-Control-Allow-Credentials: true
Verwendung von fetch() mit Anmeldedaten:
fetch(url, {
credentials: "include",
});
Verwendung von XMLHttpRequest mit Anmeldedaten:
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> |