CORS
Cross-Origin Resource Sharing (CORS), ou Compartilhamento de recursos com origens diferentes, é um mecanismo que permite que scripts em execução interajam com recursos de origens (domínio, porta e protocolo) distintas da sua.
Alguns métodos de requisição HTTP podem interferir em dados do usuário. Nesses casos, é preciso obter uma "aprovação" antecipada. Isso é feito por meio de requisições preflight, que são requisições HTTP de método OPTIONS que fazem um envio prévio da solicitação, informando os métodos suportados e outras informações no header.
Implementando o método OPTIONS
Para dar suporte ao CORS, é preciso ter um método OPTIONS implementado.
Ao criar o método OPTIONS, utilize o mesmo path dos demais métodos e adicione um interceptor de Mock.
O interceptor deve retornar status 200 e os headers:
-
Access-Control-Allow-Origin: aqui você pode usar
'*'
(qualquer origem) ou especificar a origem com permissão para acessar o recurso. -
Access-Control-Allow-Methods: liste os métodos que você utiliza, no formato
<método>, <método>, …
.
Nota:
-
Caso você não implemente o método OPTIONS:
-
os interceptors configurados no recurso all/all serão desconsiderados e não serão herdados pelo recurso buscado;
-
requisições preflight serão respondidas com:
chave: valor
Access-Control-Allow-Origin: * Access-Control-Allow-Methods: HEAD, DELETE, POST, GET, OPTIONS, PUT, PATCH
-
caso a requisição preflight contenha o cabeçalho Access-Control-Request-Headers, a resposta incluirá o seu conteúdo no cabeçalho de chave-valor Access-Control-Allow-Headers;
-
caso não exista uma configuração prévia e o header Origin não vier vazio, o valor retornado no header Access-Control-Allow-Origin será o mesmo recebido no header Origin.
-
Share your suggestions with us!
Click here and then [+ Submit idea]