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.

El encabezado de respuesta Access-Control-Allow-Credentials le dice al navegador si exponer la respuesta al código JavaScript (del frontend) cuando el modo credenciales en la petición es incluído.

Cuando las credenciales de una petición (Request.credentials) es include, los navegadores sólo expondran la respuesta al código JavaScript del frontend si el valor de Access-Control-Allow-Credentials es true.

Las credenciales son cookies, encabezados de autorización o certíficados de cliente TLS.

Cuando se usa como parte de una respueste a una petición previa, indica si la petición real puede ser hecha utilizando credenciales. Note que peticiones GET sencillas no tienen una solicitud previa, y por lo tanto, una petición es hecha por un recurso con credenciales, si el encabezado no regresa con el recurso, la respuesta es ignorada por el navegador y no es devuelto como contenido web.

El encabezado Access-Control-Allow-Credentials trabaja en conjunción con la propiedad XMLHttpRequest.withCredentials o con la opción credentials en el constructor Request() de la API Fetch. Para una petición CORS con credenciales, para que el navegador exponga la respuesta al código JavaScript del fronend, tanto el servidor (utilizando el encabezado Access-Control-Allow-Credentials) y el cliente (al configurar el modo de las credenciales para peticiones XHR, Fetch, o Ajax) se debe indicar que estan permitiendo la inclusión de credenciales.

Tipo de encabezado Respuesta del encabezado
Nombre prohibido del encabezado no

Sintaxis

Access-Control-Allow-Credentials: true

Directivas

true

El único valor válido para este encabezado es true (en minúsculas). Si no se necesitan credenciales, se debe omitir este encabezado (en lugar de colocar su valor como false).

Ejemplos

Permitir credenciales:

Access-Control-Allow-Credentials: true

Utilizando XHR con credenciales:

js
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/", true);
xhr.withCredentials = true;
xhr.send(null);

Utilizando Fetch con credenciales:

js
fetch(url, {
  credentials: "include",
});

Especificaciones

Specification
Fetch
# http-access-control-allow-credentials

Compatibilidad con navegadores

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Access-Control-Allow-Credentials

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Ver también