CORS Fehler
Cross-Origin Resource Sharing (CORS) ist ein Standard, der es einem Server ermöglicht, die Same-Origin-Policy zu lockern. Dies wird verwendet, um explizit einige Cross-Origin-Anfragen zuzulassen, während andere abgelehnt werden. Wenn eine Seite beispielsweise einen einbettbaren Service anbietet, kann es notwendig sein, bestimmte Einschränkungen zu lockern. Das Einrichten einer solchen CORS-Konfiguration ist nicht unbedingt einfach und kann einige Herausforderungen mit sich bringen. Auf diesen Seiten betrachten wir einige häufige CORS-Fehlermeldungen und wie man sie beheben kann.
Wenn die CORS-Konfiguration nicht korrekt eingerichtet ist, wird die Browser-Konsole einen Fehler anzeigen, wie "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at [some site]"
, was darauf hinweist, dass die Anfrage aufgrund der Verletzung der CORS-Sicherheitsregeln blockiert wurde. Dies muss jedoch nicht unbedingt ein Einrichtungsfehler sein. Es ist möglich, dass die Anfrage tatsächlich absichtlich von der Webanwendung des Benutzers und dem entfernten externen Service blockiert wird. Sollte der Endpunkt jedoch zugänglich sein sollen, ist einige Fehlersuche erforderlich, um erfolgreich zu sein.
Identifizieren des Problems
Um das zugrunde liegende Problem mit der CORS-Konfiguration zu verstehen, müssen Sie herausfinden, welche Anfrage fehlerhaft ist und warum. Diese Schritte können Ihnen dabei helfen:
- Navigieren Sie zur betreffenden Website oder Webanwendung und öffnen Sie die Entwickler-Tools.
- Versuchen Sie nun, die fehlgeschlagene Transaktion zu reproduzieren, und überprüfen Sie die Konsole, ob eine CORS-Verletzungs-Fehlermeldung angezeigt wird. Sie wird wahrscheinlich so aussehen:
Der Text der Fehlermeldung wird in etwa folgendermaßen lauten:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://some-url-here. (Reason: additional information here).
Hinweis: Aus Sicherheitsgründen sind Details dazu, was bei einer CORS-Anfrage schiefgelaufen ist, nicht im JavaScript-Code verfügbar. Der Code weiß nur, dass ein Fehler aufgetreten ist. Der einzige Weg, um festzustellen, was genau schiefgelaufen ist, besteht darin, die Konsole des Browsers auf Details zu überprüfen.
CORS-Fehlermeldungen
Die Konsole von Firefox zeigt Nachrichten an, wenn Anfragen aufgrund von CORS fehlschlagen. Ein Teil des Fehlers ist eine "Reason"-Nachricht, die tiefere Einblicke darüber gibt, was schiefgelaufen ist. Die Reason-Nachrichten sind unten aufgelistet; klicken Sie auf die Nachricht, um einen Artikel zu öffnen, in dem der Fehler ausführlicher erklärt wird und mögliche Lösungen angeboten werden.
- Reason: CORS disabled
- Reason: CORS request did not succeed
- Reason: CORS header 'Origin' cannot be added
- Reason: CORS request external redirect not allowed
- Reason: CORS request not http
- Reason: CORS header 'Access-Control-Allow-Origin' missing
- Reason: CORS header 'Access-Control-Allow-Origin' does not match 'xyz'
- Reason: Credential is not supported if the CORS header 'Access-Control-Allow-Origin' is '*'
- Reason: Did not find method in CORS header 'Access-Control-Allow-Methods'
- Reason: expected 'true' in CORS header 'Access-Control-Allow-Credentials'
- Reason: CORS preflight channel did not succeed
- Reason: invalid token 'xyz' in CORS header 'Access-Control-Allow-Methods'
- Reason: invalid token 'xyz' in CORS header 'Access-Control-Allow-Headers'
- Reason: missing token 'xyz' in CORS header 'Access-Control-Allow-Headers' from CORS preflight channel
- Reason: Multiple CORS header 'Access-Control-Allow-Origin' not allowed