O que são e como funcionam requisições preflight?
Uma requisição preflight é uma requisição HTTP do método OPTIONS, enviada antes da requisição principal, para verificar se a última é segura para envio.
Somente quando o servidor envia uma resposta positiva é que a requisição HTTP efetiva é realizada.
A requisição preflight contém metadados com informações como:
-
Origin: indica a origem da requisição (nome do servidor);
-
Access-Control-Request-Method: quais métodos HTTP serão utilizados;
-
Access-Control-Request-Headers: chaves que estarão presentes nos headers.
Comportamento
Conforme descrito na página sobre criação de recursos:
-
Se você implementou o método OPTIONS no recurso buscado, o fluxo definido é seguido e a hierarquia de interceptors configurada é mantida.
-
Se você não implementou o método OPTIONS, os interceptors configurados no recurso all/all são ignorados e não são herdados pelo recurso solicitado.
Como resposta padrão, os seguintes headers são enviados:
chave: valor
Access-Control-Allow-Origin: * Access-Control-Allow-Methods: HEAD, DELETE, POST, GET, OPTIONS, PUT, PATCH
Se a requisição preflight contiver o cabeçalho Access-Control-Request-Headers, a resposta incluirá seu conteúdo no cabeçalho de chave-valor Access-Control-Allow-Headers.
Share your suggestions with us!
Click here and then [+ Submit idea]