Zum Inhalt springen

CORS-Tester

CORS Tester

Sendet den Preflight, den ein Browser von einem gewählten Origin senden würde, plus ein GET mit diesem Origin, und erklärt nach den Regeln des Fetch-Standards genau, welcher Header blockiert hat.

Ein CORS-Fehler in der Konsole nennt den Header, der gefehlt hat, und fast nie den Grund, und die Anfrage, die der Browser tatsächlich gesendet hat, ist nicht die aus Ihrem Code. Dieses Werkzeug sendet den Preflight, den ein Browser von einer Origin Ihrer Wahl senden würde, dann ein GET mit dieser Origin, und liest das Ergebnis gegen die Regeln des Fetch-Standards.

☁️ Nutzt unseren Servercorshttpdebugweb

Unser Server stellt diese Anfrage für Sie. An ihn geht nur die URL, der Origin, die Methode und die Header-Namen, die Sie eingeben – weder Ihre Cookies noch Ihr Anmeldestatus gehen mit. Der Server verbindet sich ausschließlich mit öffentlichen Adressen und verweigert private und interne.

Ein Server schickt den Preflight (OPTIONS), den ein Browser schicken würde, und danach die Anfrage selbst; beurteilt wird das Ergebnis nach den CORS-Regeln des Fetch-Standards. Die eigentliche Anfrage ist immer ein GET (oder HEAD) — es wird kein PUT und kein DELETE in Ihrem Namen gegen die API eines anderen abgefeuert.

Schema, Host und Port der Webseite, die den Aufruf macht.

application/json löst immer einen Preflight aus.

So funktioniert es

  1. Geben Sie die URL und die Origin ein

    Die Origin ist die Website, von der die Anfrage *ausgehen* würde – die Seite, die den Aufruf macht, nicht die API. Die beiden zu vertauschen ist der häufigste Grund, warum ein Test dem Browser widerspricht.

  2. Fügen Sie die Methode und die Header hinzu, die Sie wirklich verwenden

    Ein Preflight findet nur bei nicht-einfachen Anfragen statt. `Content-Type: application/json` oder ein `Authorization`-Header löst ihn aus, wer sie weglässt, testet also eine Anfrage, die er nie stellt.

  3. Lesen Sie, welche Regel gescheitert ist

    Das Ergebnis nennt die konkrete Prüfung – Origin nicht erlaubt, Methode nicht aufgeführt, Header nicht aufgeführt, Credentials mit Wildcard-Origin – statt einen allgemeinen Fehler zu melden.

Häufige Fragen

Hier besteht er, aber der Browser blockiert trotzdem.

Prüfen Sie, ob Methode, Header und Credentials-Modus genau dem entsprechen, was Ihr Code sendet, und ob der Server seine Antwort nicht nach Cookie oder User-Agent variiert. Dieses Werkzeug läuft von einem Server aus, eine Antwort, die von einer Sitzung abhängt, die Sie haben, fällt also anders aus.

Warum funktioniert `Access-Control-Allow-Origin: *` nicht mit Cookies?

Der Standard verbietet es. Mit `credentials: 'include'` muss die Origin wörtlich zurückgegeben werden und `Access-Control-Allow-Credentials: true` vorhanden sein. Eine Wildcard mit Credentials wird durch Design abgelehnt, nicht durch einen Fehler.

Läuft das in meinem Browser?

Nein. Es läuft von einem Server aus, weil ein Browser die Anfrage, die CORS blockiert, nicht stellen kann. Das heißt, es sieht die öffentliche Antwort – ohne Ihre Cookies und ohne Ihre Netzwerkposition.

Kann ich eine interne Adresse testen?

Nein. Die Anfrage geht von einem Server aus, der Ihr Netzwerk nicht erreichen kann, und Adressen, die sich nur darin auflösen lassen, scheitern unabhängig von ihrer CORS-Konfiguration.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.