Preflight-Anfrage
Eine CORS-Preflight-Anfrage ist eine CORS-Anfrage, die überprüft, ob das CORS-Protokoll verstanden wird und ein Server spezifische Methoden und Header unterstützt.
Es ist eine OPTIONS-Anfrage, die zwei oder drei HTTP-Anforderungsheader verwendet: Access-Control-Request-Method, Origin und optional Access-Control-Request-Headers.
Eine Preflight-Anfrage wird automatisch von einem Browser gesendet und in der Regel müssen Front-End-Entwickler solche Anfragen nicht selbst erstellen. Sie erscheint, wenn die Anfrage als "zu preflighten" qualifiziert wird und wird bei einfachen Anfragen weggelassen.
Zum Beispiel könnte ein Client einen Server fragen, ob er eine DELETE-Anfrage erlauben würde, bevor er eine DELETE-Anfrage sendet, indem er eine Preflight-Anfrage verwendet:
OPTIONS /resource/foo
Access-Control-Request-Method: DELETE
Access-Control-Request-Headers: x-requested-with
Origin: https://www.example.com
Wenn der Server es erlaubt, antwortet er auf die Preflight-Anfrage mit einem Access-Control-Allow-Methods-Antwort-Header, der DELETE auflistet:
HTTP/1.1 204 No Content
Connection: keep-alive
Access-Control-Allow-Origin: https://www.example.com
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 im selben URL erstellt werden, mithilfe des Access-Control-Max-Age-Headers wie im obigen Beispiel zwischengespeichert werden. Um Preflight-Antworten zu zwischenspeichern, verwendet der Browser einen spezifischen Cache, der von dem allgemeinen HTTP-Cache, den der Browser verwaltet, getrennt ist. Preflight-Antworten werden niemals im allgemeinen HTTP-Cache des Browsers zwischengespeichert.