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