Preflight-Anfrage

Eine CORS-Preflight-Anfrage ist eine CORS-Anfrage, die prüft, ob das CORS-Protokoll verstanden wird und ob ein Server unter Verwendung spezifischer Methoden und Header darüber informiert ist.

Es handelt sich um eine OPTIONS-Anfrage, die zwei oder drei HTTP-Anforderungs-Header verwendet: Access-Control-Request-Method, Origin und optional Access-Control-Request-Headers.

Eine Preflight-Anfrage wird automatisch von einem Browser gesendet, und in normalen Fällen müssen Front-End-Entwickler solche Anfragen nicht selbst erstellen. Sie tritt auf, wenn die Anfrage als "to be preflighted" qualifiziert ist und bei einfachen Anfragen weggelassen wird.

Zum Beispiel könnte ein Client einen Server fragen, ob er eine DELETE-Anfrage zulassen würde, bevor er eine DELETE-Anfrage sendet, indem er eine Preflight-Anfrage verwendet:

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

Wenn der Server dies zulässt, antwortet er auf die Preflight-Anfrage mit einem Access-Control-Allow-Methods-Antwort-Header, der DELETE aufführt:

http
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-Allow-Headers: X-Requested-With
Access-Control-Max-Age: 86400

Die Preflight-Antwort kann optional für die Anfragen, die in der gleichen URL erstellt werden, zwischengespeichert werden, indem der Access-Control-Max-Age-Header wie im obigen Beispiel verwendet wird. Um Preflight-Antworten zu zwischenspeichern, verwendet der Browser einen speziellen Cache, der vom allgemeinen HTTP-Cache, den der Browser verwaltet, getrennt ist. Preflight-Antworten werden niemals im allgemeinen HTTP-Cache des Browsers zwischengespeichert.

Siehe auch