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.

Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]