As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Habilitar o CORS para um recurso da API REST
O compartilhamento de recursos entre origens (CORS)
Determinar se deseja habilitar o suporte ao CORS
Uma solicitação HTTP entre origens é uma solicitação que é feita para:
-
Um domínio diferente (por exemplo, de
example.com
paraamazondomains.com
) -
Um subdomínio diferente (por exemplo, de
example.com
parapetstore.example.com
) -
Uma porta diferente (por exemplo, de
example.com
paraexample.com:10777
) -
Um protocolo diferente (por exemplo, de
https://example.com
parahttp://example.com
)
Se você não conseguir acessar sua API e receber uma mensagem de erro contendo Cross-Origin Request Blocked
, talvez seja necessário habilitar o CORS.
As solicitações HTTP entre origens podem ser divididas em dois tipos: solicitações simples e solicitações não simples.
Habilitar o CORS para uma solicitação simples
Uma solicitação HTTP será simples se todas as condições a seguir forem verdadeiras:
-
Ela é emitida em relação a um recurso de API que permite apenas solicitações
POST
,GET
eHEAD
. -
Se for uma solicitação de método
POST
, deverá incluir um cabeçalhoOrigin
. -
O tipo de conteúdo da carga da solicitação é
text/plain
,multipart/form-data
ouapplication/x-www-form-urlencoded
. -
A solicitação não contém cabeçalhos personalizados.
-
Quaisquer requisitos adicionais que estão listados na Documentação do Mozilla CORS para solicitações simples
.
Para solicitações simples do método POST
de origem cruzada, a resposta de seu recurso precisa incluir o cabeçalho Access-Control-Allow-Origin: '*'
ou Access-Control-Allow-Origin:
.'origin'
Todas as outras solicitações HTTP entre origens são solicitações não simples.
Habilitar o CORS para uma solicitação não simples
Se os recursos de sua API receberem solicitações não simples, você deverá habilitar o suporte CORS adicional, dependendo de seu tipo de integração.
Habilitar o CORS para integrações sem proxy
Para essas integrações, o protocolo CORS
Como criar uma resposta de simulação:
Crie um método
OPTIONS
com uma integração de simulação.-
Adicione os seguintes cabeçalhos de resposta à resposta do método 200:
-
Access-Control-Allow-Headers
-
Access-Control-Allow-Methods
-
Access-Control-Allow-Origin
-
-
Insira valores para os cabeçalhos de resposta. Para possibilitar todas as origens, todos os métodos e cabeçalhos comuns, use os seguintes valores de cabeçalho:
-
Access-Control-Allow-Headers: 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token'
-
Access-Control-Allow-Methods: '*'
-
Access-Control-Allow-Origin: '*'
-
Depois de criar a solicitação de simulação, você deve retornar o cabeçalho Access-Control-Allow-Origin: '*'
ou Access-Control-Allow-Origin:
para todos os métodos habilitados para CORS para pelo menos todas as 200 respostas.'origin'
Habilitando o CORS para integrações sem proxy usando o AWS Management Console
Você pode usar o AWS Management Console para habilitar o CORS. O API Gateway cria um método OPTIONS
e tenta adiciona o cabeçalho Access-Control-Allow-Origin
às respostas de integração de métodos existentes. Isso nem sempre funciona e, às vezes, você precisa modificar manualmente a resposta de integração para retornar o cabeçalho Access-Control-Allow-Origin
de todos os métodos habilitados para CORS para pelo menos todas as 200 respostas.
Habilitar o suporte ao CORS para integrações de proxy
Para uma integração de proxy do Lambda ou integração de proxy HTTP, seu back-end é responsável por retornar os cabeçalhos Access-Control-Allow-Origin
, Access-Control-Allow-Methods
e Access-Control-Allow-Headers
, porque uma integração de proxy não retorna uma resposta de integração.
As seguintes funções de exemplo do Lambda retornam os cabeçalhos de CORS necessários: