--- title: Access-Control-Allow-Credentials slug: Web/HTTP/Headers/Access-Control-Allow-Credentials tags: - Access-Control-Allow-Credentials - CORS - Credenciais - HTTP - Reference - cabeçalho - credentials - header translation_of: Web/HTTP/Headers/Access-Control-Allow-Credentials ---
{{HTTPSidebar}}

O cabeçalho de resposta Access-Control-Allow-Credentials diz aos navegadores se a resposta deve ser exposta ao código frontend JavaScript quando o modo de credenciais da requisição ({{domxref("Request.credentials")}}) é include.

Quando o modo de credenciais da requisição ({{domxref("Request.credentials")}}) é include, navegadores vão somente expor a resposta ao código frontend JavaScript se o valor de Access-Control-Allow-Credentials for true.

Credenciais são cookies, cabeçalhos de autorização ou certificados de cliente TLS.

Quando usado como parte de uma resposta a uma requisição pré-vôo (preflight), isso indica se a requisição atual vai ou não ser feita usando credenciais. Note que uma simples requisição {{HTTPMethod("GET")}} não é feita com pré-vôo, e se uma requisição é feita para um recurso usando credenciais, se o cabeçalho não é retornado com o recurso, a resposta é ignorada pelo navegador e não é retornada ao conteúdo web.

O cabeçalho Access-Control-Allow-Credentials funciona em conjunto com a propriedade {{domxref("XMLHttpRequest.withCredentials")}} ou com a opção credentials na construtor da {{domxref("Request.Request()", "Request()")}} na Fetch API. Para requisições CORS com credenciais, para que os navegadores exponham a resposta ao código frontend JavaScript, ambos o servidor (usando o cabeçalho Access-Control-Allow-Credentials) e o cliente (colocando o modo de credenciais para o XHR, Fetch, ou requisição Ajax) devem indicar que eles estão optando por incluir as credenciais.

Tipo de cabeçalho {{Glossary("Response header")}}
{{Glossary("Forbidden header name")}} não

Sintaxe

Access-Control-Allow-Credentials: true

Diretivas

true
O único valor válido para este cabeçalho é true (case-sensitive). Se você não precisa de credenciais, omita este cabeçalho inteiramente (ao invés de colocar seu valor para false).

Exemplos

Permitindo credenciais:

Access-Control-Allow-Credentials: true

Usando XHR com credenciais:

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

Usando Fetch com credenciais:

fetch(url, {
  credentials: 'include'
})

Especificações

Especificação Status Comentário
{{SpecName('Fetch','#http-access-control-allow-credentials', 'Access-Control-Allow-Credentials')}} {{Spec2("Fetch")}} Definição inicial

Compatibilidade com navegadores

{{Compat("http.headers.Access-Control-Allow-Credentials")}}

Veja também