--- 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")}}