Preflight-Anfrage
Eine CORS-Preflight-Anfrage ist eine CORS-Anfrage, die überprüft, ob das CORS-Protokoll verstanden wird und ein Server mit bestimmten Methoden und Headern vertraut ist.
Es handelt sich um eine OPTIONS
-Anfrage, die zwei oder drei HTTP-Anfrage-Header verwendet: Access-Control-Request-Method
, Origin
und optional Access-Control-Request-Headers
.
Eine Preflight-Anfrage wird automatisch von einem Browser erstellt und in normalen Fällen müssen Front-End-Entwickler solche Anfragen nicht selbst erzeugen. Sie erscheint, wenn die Anfrage als "vorab zu prüfen" klassifiziert wird und wird für einfache Anfragen weggelassen.
Zum Beispiel könnte ein Client einen Server fragen, ob er eine DELETE
-Anfrage zulässt, 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://foo.bar.org
Wenn der Server dies erlaubt, antwortet er auf die Preflight-Anfrage mit einem Access-Control-Allow-Methods
-Antwortheader, der DELETE
auflistet:
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 Anfragen, die an derselben URL erstellt wurden, zwischengespeichert werden, indem der Header Access-Control-Max-Age
wie im obigen Beispiel verwendet wird. Um Preflight-Antworten zu cachen, verwendet der Browser einen spezifischen Cache, der getrennt vom allgemeinen HTTP-Cache ist, den der Browser verwaltet. Preflight-Antworten werden niemals im allgemeinen HTTP-Cache des Browsers zwischengespeichert.