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 bestimmter Methoden und Header informiert ist.
Es ist 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 normalerweise müssen Front-End-Entwickler solche Anfragen nicht selbst erstellen. Sie tritt auf, wenn die Anfrage als "preflighted" 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://foo.bar.org
Wenn der Server dies erlaubt, wird er auf die Preflight-Anfrage mit einem Access-Control-Allow-Methods
-Antwort-Header antworten, 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 unter derselben URL erstellt wurden, mithilfe des Access-Control-Max-Age
-Headers wie im obigen Beispiel zwischengespeichert werden. Um Preflight-Antworten zu cachen, verwendet der Browser einen speziellen Cache, der getrennt vom allgemeinen HTTP-Cache ist, den der Browser verwaltet. Preflight-Antworten werden niemals im allgemeinen HTTP-Cache des Browsers gespeichert.