--- 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 ---
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 |
Access-Control-Allow-Credentials: true
true (case-sensitive). Se você não precisa de credenciais, omita este cabeçalho inteiramente (ao invés de colocar seu valor para false).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ção | Status | Comentário |
|---|---|---|
| {{SpecName('Fetch','#http-access-control-allow-credentials', 'Access-Control-Allow-Credentials')}} | {{Spec2("Fetch")}} | Definição inicial |
{{Compat("http.headers.Access-Control-Allow-Credentials")}}