CORS-Fehler
Cross-Origin Resource Sharing (CORS) ist ein Standard, der es einem Server erlaubt, die Same-Origin-Policy zu lockern. Dies wird verwendet, um bestimmte Cross-Origin-Anfragen explizit zu erlauben, während andere abgelehnt werden. Wenn eine Webseite beispielsweise einen einbettbaren Dienst anbietet, kann es notwendig sein, bestimmte Beschränkungen zu lockern. Eine solche CORS-Konfiguration einzurichten, ist nicht unbedingt einfach und kann einige Herausforderungen mit sich bringen. In diesen Seiten werden wir einige häufige CORS-Fehlermeldungen betrachten und wie man sie behebt.
Wenn die CORS-Konfiguration nicht korrekt eingerichtet ist, zeigt die Browser-Konsole eine Fehlermeldung wie "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at [some site]"
an, die 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 Nutzers und dem externen Dienst blockiert wird. Sollte der Endpunkt jedoch verfügbar sein, ist eine Fehlerbehebung erforderlich, um erfolg zu haben.
Identifikation 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 Entwicklerwerkzeuge.
- Versuchen Sie nun, die fehlerhafte Transaktion zu reproduzieren, und prüfen Sie die Konsole, ob eine CORS-Verletzungsfehlermeldung angezeigt wird. Diese sieht wahrscheinlich so aus:
Der Text der Fehlermeldung wird in etwa 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 spezifische Informationen darüber, was bei einer CORS-Anfrage schiefgelaufen ist, für JavaScript-Code nicht verfügbar. Der Code weiß nur, dass ein Fehler aufgetreten ist. Der einzige Weg, um festzustellen, was genau schiefgelaufen ist, besteht darin, die Einzelheiten in der Konsole des Browsers anzusehen.
CORS-Fehlermeldungen
Die Konsole von Firefox zeigt Nachrichten in ihrer Konsole an, wenn Anfragen aufgrund von CORS fehlschlagen. Ein Teil des Fehltextes ist eine "Reason"-Nachricht, die zusätzlichen Einblick in das Geschehene bietet. Die Grundmeldungen sind unten aufgelistet; klicken Sie die Nachricht an, um einen Artikel zu öffnen, der den Fehler ausführlicher erklärt und mögliche Lösungen anbietet.
- 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