Requisição Preflight

Uma requisição preflight de CORS é uma requisição de CORS que verifica se o protocolo CORS é entendido e se o servidor aguarda o método e cabeçalhos('headers') especificados.

É uma requisição OPTIONS, que usa três cabeçalhos de solicitação HTTP: Access-Control-Request-Method, Access-Control-Request-Headers, e o cabeçalho Origin.

Uma requisição preflight é emitida automaticamente por um navegador, quando necessário. Geralmente, os desenvolvedores front-end não precisam criar essas solicitações. Ela acontece quando a requisição é qualificada "para ser preflighted" e omitida para requisições simples.

Por exemplo, o cliente pode perguntar ao servidor se este permitiria uma requisição DELETE, antes de enviá-la, usando uma requisição preflight:

OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: origin, x-requested-with
Origin: https://foo.bar.org

Se o servidor permitir, ele responderá à requisição preflight: com um cabeçalho de resposta Access-Control-Allow-Methods, que lista DELETE:

HTTP/1.1 204 No Content
Connection: keep-alive
Access-Control-Allow-Origin: https://foo.bar.org
Access-Control-Allow-Methods: POST, GET, OPTIONS, DELETE
Access-Control-Max-Age: 86400

A resposta da requisição preflight pode ser opcionalmente cacheada para requisições realizadas na mesma url usando o cabeçalho Access-Control-Max-Age como no exemplo acima.

Veja também