CORS-Tester

Teste CORS-Header und Cross-Origin-Resource-Sharing-Richtlinien. Kostenlos, schnell und komplett im Browser, ohne Anmeldung.

Aktualisiert am

Share:
Home/Website Tools/CORS Tester & Debugger

CORS Tester & Debugger

Test CORS headers for any API endpoint and debug cross-origin issues.

CORS Tester

Häufig gestellte Fragen

Warum meldet mein Browser „blocked by CORS policy“, obwohl die API in Postman einwandfrei funktioniert?

Postman und curl sind keine Browser, sie ignorieren die Same-Origin-Policy komplett — sie senden die Anfrage und lesen die Antwort, egal welche Header zurückkommen. Ein Browser ist strenger: Ruft JavaScript von einem Origin ein anderes Schema, eine andere Domain oder einen anderen Port auf, darf Ihr Code die Antwort nur lesen, wenn der Server den richtigen Access-Control-Allow-Origin-Header zurückgibt. Fehlt dieser Header, erreicht die Anfrage den Server trotzdem und liefert Daten zurück, aber der Browser versteckt die Antwort vor Ihrem Skript und protokolliert den CORS-Fehler. Deshalb kann ein Endpunkt in Postman gesund aussehen, in der Konsole aber fehlschlagen. Dieses Tool untersucht die tatsächlich vom Server gesendeten CORS-Header, sodass Sie bestätigen können, ob das Problem an der Serverkonfiguration liegt und nicht an Ihrem Fetch-Code. Fügen Sie Ihren Endpunkt ein, um genau zu sehen, welche Header vorhanden sind.

Was ist eine CORS-Preflight-Anfrage und wann sendet der Browser eine?

Ein Preflight ist eine automatische OPTIONS-Anfrage, die der Browser vor der eigentlichen Anfrage sendet, um zu prüfen, ob der tatsächliche Aufruf erlaubt ist. Das passiert bei „nicht einfachen“ Anfragen: Methoden wie PUT, DELETE oder PATCH, eigene Request-Header oder Content-Types wie application/json. Der Browser sendet dabei Access-Control-Request-Method und Access-Control-Request-Headers, und der Server muss mit passenden Access-Control-Allow-Methods- und Access-Control-Allow-Headers-Werten antworten, sonst wird die eigentliche Anfrage nie ausgelöst. Einfache GET- und POST-Anfragen mit Standard-Headern überspringen diesen Schritt. Da Preflights in den meisten Fetch-Codes unsichtbar bleiben, ist ein fehlgeschlagener OPTIONS-Handshake eine häufige und verwirrende Ursache für CORS-Fehler. Mit diesem Tester können Sie die Anfrage als OPTIONS senden und die vom Server gemeldeten erlaubten Methoden und Header einsehen, statt aus einer blockierten Konsolenmeldung zu raten.

Warum schlägt Access-Control-Allow-Credentials fehl, wenn der Origin ein Wildcard ist?

Die CORS-Spezifikation verbietet die Kombination von Anfragen mit Zugangsdaten und einem Wildcard-Origin, und jeder Browser setzt das durch. Wenn Sie Cookies oder Authorization-Header cross-origin senden, muss der Server einen konkreten Origin in Access-Control-Allow-Origin zurückspiegeln — niemals das Sternchen als Sammelbegriff. Antwortet ein Server sowohl mit Access-Control-Allow-Credentials: true als auch mit einem Wildcard bei Access-Control-Allow-Origin, lehnt der Browser die Antwort rundweg ab und Ihre Anfrage schlägt fehl, obwohl die Header freizügig wirken. Die Lösung ist, den exakt anfragenden Origin zu spiegeln statt ein Wildcard zu verwenden, und den Credentials-Header weiterhin auf true zu setzen. Dieses Tool markiert genau diese gefährliche Kombination als Fehler in seiner CORS-Analyse, damit Sie sie erkennen, bevor sie ein authentifiziertes Frontend lahmlegt. Testen Sie Ihren Endpunkt mit Zugangsdaten hier, um zu prüfen, ob der Origin konkret statt wildcard ist.

Ist ein Wildcard-Access-Control-Allow-Origin (*) sicher?

Ein Wildcard-Origin erlaubt jeder Website im Internet, Cross-Origin-Anfragen an Ihre API zu stellen und die Antwort zu lesen — für wirklich öffentliche Daten wie offene Datensätze, öffentliche Nur-Lese-APIs oder statisches JSON ist das völlig unbedenklich. Riskant wird es, sobald der Endpunkt irgendetwas Sensibles zurückgibt oder mit den Cookies eines Nutzers erreichbar ist, denn dann könnte eine bösartige Website ihn im Namen eines Besuchers aufrufen. Als Faustregel gilt: Beschränken Sie Access-Control-Allow-Origin auf die konkreten Domains, die legitim Zugriff benötigen, statt es für alle zu öffnen, und kombinieren Sie ein Wildcard nie mit Credentials. Dieser Tester markiert einen Wildcard-Origin als Warnung und eine konkrete Domain als gut, sodass Sie auf einen Blick sehen, wie exponiert ein Endpunkt ist. Testen Sie Ihre URL hier, um zu prüfen, ob die Origin-Richtlinie zur Sensibilität der ausgelieferten Daten passt.

Wofür sorgt der Access-Control-Max-Age-Header bei der CORS-Performance?

Access-Control-Max-Age teilt dem Browser mit, wie viele Sekunden er das Ergebnis einer Preflight-OPTIONS-Anfrage zwischenspeichern darf. Solange dieser Cache gültig ist, überspringt der Browser den zusätzlichen Roundtrip und sendet die eigentliche Anfrage direkt, was Apps spürbar beschleunigt, die viele nicht einfache Anfragen an denselben Endpunkt senden. Ohne diesen Header preflighted der Browser womöglich bei jedem Aufruf erneut, was Latenz hinzufügt. Die Werte werden vom Browser gedeckelt — Chrome begrenzt den Cache auf wenige Stunden, unabhängig von einem höheren angegebenen Wert —, sodass ein extrem hoher Wert über diese Obergrenze hinaus keinen Nutzen bringt. Fehlt Max-Age, bedeutet das schlicht kein Preflight-Caching. Dieses Tool liest den Header aus und rechnet die Rohsekunden in seiner Analyse in Minuten um, damit Sie schnell einschätzen können, wie aggressiv Preflights zwischengespeichert werden. Testen Sie Ihren Endpunkt, um zu sehen, ob er ein sinnvolles Max-Age setzt.

Über den CORS-Tester

Der CORS-Tester prüft, wie ein beliebiger API-Endpunkt auf Cross-Origin-Anfragen reagiert, damit Sie genau sehen, welche Cross-Origin-Resource-Sharing-Header ein Server zurücksendet – und warum der Browser Ihr Frontend gerade blockiert. Geben Sie eine URL ein, wählen Sie eine HTTP-Methode, und das Tool ruft den Endpunkt auf und liefert Ihnen den Statuscode, die CORS-relevanten Header, die vollständige Liste aller Response-Header sowie den Anfang des Response-Bodys. Entwickelt für Frontend-Entwickler, API-Ingenieure und alle, die dem berüchtigten Fehler „blocked by CORS policy“ in der Browser-Konsole auf den Grund gehen wollen.

Da ein Browser einer Seite nicht erlaubt, eine rohe Cross-Origin-Antwort auszulesen, schickt das Tool Ihre Anfrage über einen öffentlichen Proxy (corsproxy.io) und wertet die zurückkommenden Header aus. Das bedeutet, die Anfrage verlässt Ihr Gerät – testen Sie also lieber öffentliche Endpunkte oder Staging-Umgebungen, statt private Zugangsdaten einzugeben, die Sie nicht mit Dritten teilen möchten. Registrierung, Konto oder Installation sind nicht nötig.

Was der CORS-Tester prüft

Das Tool liest und erklärt die gängigen CORS-Response-Header:

  • Access-Control-Allow-Origin — welche(n) Ursprung(e) der Server zulässt. Das Tool zeigt an, ob CORS überhaupt konfiguriert ist und ob der Wert eine konkrete Domain oder ein Wildcard ist.
  • Access-Control-Allow-Methods — die HTTP-Methoden, die der Endpunkt cross-origin akzeptiert.
  • Access-Control-Allow-Headers — die Request-Header, die der Server bei einer Preflight-Anfrage akzeptiert.
  • Access-Control-Allow-Credentials — ob Cookies und Authorization-Header erlaubt sind.
  • Access-Control-Max-Age — wie viele Sekunden der Browser das Preflight-Ergebnis zwischenspeichern darf.
  • Access-Control-Expose-Headers — welche Response-Header Ihr JavaScript auslesen darf.

Sie können die Anfrage als GET, POST, PUT, DELETE, OPTIONS oder PATCH senden, beliebige eigene Request-Header als Schlüssel-Wert-Paare hinzufügen und für POST, PUT und PATCH einen JSON-Request-Body mitschicken. Die Ergebnisse werden in drei Ansichten aufgeteilt: eine leicht verständliche CORS-Analyse, die vollständige (kopierbare) Liste der Response-Header und der Response-Body.

Die Analyse richtig lesen

Jeder Befund wird als gut, Warnung, Fehler oder informativ markiert, damit Sie die Ergebnisse schnell erfassen können:

  • Ein fehlender Access-Control-Allow-Origin-Header wird als Fehler gekennzeichnet — der Server hat kein CORS konfiguriert, Browser blockieren also das Auslesen.
  • Ein Wildcard-Origin (*) wird als Warnung markiert, da dadurch jede beliebige Website die API aufrufen kann. Für vollständig öffentliche Daten ist das unproblematisch, bei sensiblen Inhalten aber riskant.
  • Die Kombination aus Access-Control-Allow-Credentials: true mit einem Wildcard-Origin wird als Fehler gekennzeichnet, da die Spezifikation dies untersagt und Browser die Antwort kategorisch ablehnen. Anfragen mit Zugangsdaten erfordern einen expliziten Origin.
  • Ein Max-Age-Wert wird in Minuten umgerechnet, damit Sie sofort sehen, wie aggressiv Preflight-Antworten zwischengespeichert werden.

Warum CORS-Tests wichtig sind

CORS ist ein Sicherheitsmechanismus des Browsers: JavaScript auf einem Origin darf standardmäßig keine Antworten von einem anderen Origin (anderes Schema, andere Domain oder anderer Port) auslesen. Bei „nicht einfachen“ Anfragen — eigene Header, JSON-Content-Types oder Methoden wie PUT und DELETE — schickt der Browser zunächst eine OPTIONS-Preflight-Anfrage, und die eigentliche Anfrage läuft nur weiter, wenn der Server mit den richtigen Headern antwortet. Scheitert dieser Handshake, wird die Anfrage blockiert, bevor Ihr Code die Daten überhaupt zu sehen bekommt — deshalb sind CORS-Fehler so häufig, wenn eine Single-Page-App mit einer separaten API oder einem Drittanbieter-Service verbunden wird.

Ein direkter Test des Endpunkts zeigt Ihnen, ob das Problem auf Serverseite liegt (fehlende oder falsch konfigurierte Header) statt in Ihrem Fetch-Code. Werden keine CORS-Header erkannt, zeigt der CORS-Tester außerdem fertige Konfigurations-Snippets für Express.js und Node, Nginx sowie Apache .htaccess, mit denen Sie Origin und Methoden serverseitig korrigieren und erneut testen können. Fügen Sie oben einen Endpunkt ein, um zu sehen, wie er reagiert, und ein klares Bild seiner Cross-Origin-Richtlinie zu erhalten.