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 einige Cross-Origin-Anfragen explizit zuzulassen, während andere abgelehnt werden. Wenn eine Website beispielsweise einen einbettbaren Dienst anbietet, kann es erforderlich sein, bestimmte Einschränkungen zu lockern. Eine solche CORS-Konfiguration einzurichten, ist nicht unbedingt einfach und kann einige Herausforderungen mit sich bringen. Auf diesen Seiten werden wir einige häufige CORS-Fehlermeldungen betrachten und wie man sie beheben kann.
Wenn die CORS-Konfiguration nicht korrekt eingerichtet ist, wird die Browser-Konsole einen Fehler wie "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at [some site]"
anzeigen, der darauf hinweist, dass die Anfrage aufgrund eines Verstoßes gegen die 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 Nutzers und den externen Dienst verweigert wird. Soll der Endpunkt jedoch zugänglich sein, ist eine Fehlerbehebung erforderlich, um erfolgreich zu sein.
Identifizierung 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 Web-App und öffnen Sie die Entwicklerwerkzeuge.
- Versuchen Sie nun, die fehlerhafte Transaktion nachzuvollziehen, und überprüfen Sie die Konsole, ob eine CORS-Verletzungs-Fehlermeldung angezeigt wird. Es wird wahrscheinlich so aussehen:
Der Text der Fehlermeldung wird in etwa so sein:
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 Einzelheiten 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 Konsole des Browsers nach Details zu durchsuchen.
CORS-Fehlermeldungen
Die Konsole von Firefox zeigt Meldungen an, wenn Anfragen aufgrund von CORS fehlschlagen. Ein Teil des Fehlertests ist eine "Grund"-Nachricht, die zusätzlichen Einblick in den Fehler gibt. 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 anbietet.
- Grund: CORS deaktiviert
- Grund: CORS-Anfrage war nicht erfolgreich
- Grund: CORS-Header 'Origin' kann nicht hinzugefügt werden
- Grund: CORS-Anfrage, externe Umleitung nicht erlaubt
- Grund: CORS-Anfrage nicht HTTP
- Grund: CORS-Header 'Access-Control-Allow-Origin' fehlt
- Grund: CORS-Header 'Access-Control-Allow-Origin' stimmt nicht mit 'xyz' überein
- Grund: Anmeldedaten werden nicht unterstützt, wenn der CORS-Header 'Access-Control-Allow-Origin' auf '*' gesetzt ist
- Grund: Methode nicht im CORS-Header 'Access-Control-Allow-Methods' gefunden
- Grund: erwartet 'true' im CORS-Header 'Access-Control-Allow-Credentials'
- Grund: CORS-Preflight-Kanal war nicht erfolgreich
- Grund: ungültiges Token 'xyz' im CORS-Header 'Access-Control-Allow-Methods'
- Grund: ungültiges Token 'xyz' im CORS-Header 'Access-Control-Allow-Headers'
- Grund: Fehlendes Token 'xyz' im CORS-Header 'Access-Control-Allow-Headers' vom CORS-Preflight-Kanal
- Grund: Mehrere CORS-Header 'Access-Control-Allow-Origin' nicht erlaubt