CORS-Fehler
Cross-Origin Resource Sharing (CORS) ist ein Standard, der einem Server erlaubt, die Same-Origin-Policy zu lockern. Dies wird verwendet, um bestimmte plattformübergreifende Anfragen explizit zu erlauben, während andere abgelehnt werden. Wenn eine Website beispielsweise einen einbettbaren Service anbietet, kann es notwendig sein, bestimmte Einschränkungen zu lockern. Die Einrichtung einer solchen CORS-Konfiguration ist nicht unbedingt einfach und kann einige Herausforderungen darstellen. Auf diesen Seiten werden wir einige häufige CORS-Fehlermeldungen und deren Behebung betrachten.
Wenn die CORS-Konfiguration nicht korrekt eingerichtet ist, zeigt die Browser-Konsole einen Fehler wie "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at [some site]"
an, der 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 durch die Webanwendung des Benutzers und den externen Dienst abgelehnt wird. Wenn der Endpunkt jedoch verfügbar sein soll, ist einige Fehlersuche erforderlich, um erfolgreich zu sein.
Identifizieren eines CORS-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 prüfen Sie die Konsole, ob Sie eine CORS-Verletzungs-Fehlermeldung sehen. Es wird wahrscheinlich wie folgt aussehen:
Der Fehlertext wird ungefähr wie folgt aussehen:
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 keine spezifischen Informationen darüber verfügbar, was bei einer CORS-Anfrage schiefgelaufen ist, im JavaScript-Code. Der Code weiß lediglich, dass ein Fehler aufgetreten ist. Der einzige Weg, um festzustellen, was genau schiefgelaufen ist, besteht darin, die Details in der Konsole des Browsers zu überprüfen.
CORS-Fehlermeldungen
Die Konsole von Firefox zeigt Nachrichten in ihrer Konsole an, wenn Anfragen aufgrund von CORS fehlschlagen. Teil des Fehlertextes ist eine "Reason"-Nachricht, die zusätzliche Einblicke darüber bietet, was schiefgelaufen ist. Die Grundnachrichten sind unten aufgelistet; klicken Sie auf die Nachricht, um einen Artikel zu öffnen, der den Fehler detaillierter erklärt und mögliche Lösungen bietet.
- 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