Was ist CORS (Cross-Origin Resource Sharing)?
Mechanismus, der Anfragen an andere Ursprünge und das Lesen ihrer Antworten, die die Same-Origin-Policy einschränkt, in dem vom Server erlaubten Umfang zulässt. Der Server gibt mit Antwort-Headern wie Access-Control-Allow-Origin an, welche Ursprünge die Antwort lesen dürfen. Bei Anfragen, die ein einfaches Formular nicht erzeugen kann, etwa einem POST mit dem Content-Type application/json, sendet der Browser zuerst mit der Methode OPTIONS eine Vorabprüfung (Preflight). CORS ist eine Regel, die der Browser einhält, kein Mechanismus, der den Server vor Angriffen schützt.
Japanische Bezeichnung: CORS(オリジン間リソース共有)
„CORS (Cross-Origin Resource Sharing)“ kommt in 1 Übungsfragen aus 1 Themen vor, z. B. Grundlagen der Webtechnologien.
Fachgebiet: Grundlagen der Webtechnologien
Einfache Anfragen und Preflight
GET-Anfragen und POST-Anfragen in Formaten, die ein Formular senden kann (application/x-www-form-urlencoded, multipart/form-data, text/plain), werden ohne Prüfung gesendet; Access-Control-Allow-Origin entscheidet nur darüber, ob das Skript die Antwort lesen darf. Bei Anfragen mit anderen Methoden oder Content-Types oder mit eigenen Headern sendet der Browser zuerst OPTIONS und teilt in Headern wie Access-Control-Request-Method die Methode und die Header mit, die er verwenden will. Gibt der Server die Erlaubnis zurück, sendet der Browser die eigentliche Anfrage.
Häufige Fragen
Lässt sich ein CORS-Fehler auf der Clientseite beheben?
Nein. Welche Ursprünge die Antworten lesen dürfen, entscheidet der Server; der API-Server muss seinen Antworten daher die passenden Erlaubnis-Header hinzufügen. Bei einer API, die man nicht selbst verwaltet, kann man sie auch über den eigenen Server aufrufen.
Wie hängen Same-Origin-Policy und CORS zusammen?
Die Same-Origin-Policy verbietet grundsätzlich, Antworten anderer Ursprünge zu lesen, und CORS ist der Mechanismus, der in dem vom Server ausdrücklich angegebenen Umfang Ausnahmen davon zulässt. Gibt der Server keine CORS-Erlaubnis zurück, gilt die Einschränkung der Same-Origin-Policy unverändert.