files/en-us/web/http/reference/headers/access-control-allow-credentials/index.md
The HTTP Access-Control-Allow-Credentials {{Glossary("response header")}} tells browsers whether the server allows credentials to be included in cross-origin HTTP requests.
Credentials include cookies, {{glossary("TLS", "Transport Layer Security (TLS)")}} client certificates, or authentication headers containing a username and password. By default, these credentials are not sent in cross-origin requests, and doing so can make a site vulnerable to {{Glossary("CSRF", "Cross-Site Request Forgery (CSRF)")}} attacks.
A client can ask for credentials to be included in cross-site requests in several ways:
credentials option to "include".true.true.When credentials are included:
Access-Control-Allow-Credentials header to true, then the real request will include credentials; otherwise, the browser reports a network error.Access-Control-Allow-Credentials header to true, the browser reports a network error.Access-Control-Allow-Credentials: true
true
false.Allow credentials:
Access-Control-Allow-Credentials: true
Using {{domxref("Window/fetch", "fetch()")}} with credentials:
fetch(url, {
credentials: "include",
});
Using {{domxref("XMLHttpRequest")}} with credentials:
const xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/", true);
xhr.withCredentials = true;
xhr.send(null);
{{Specifications}}
{{Compat}}