CORS Tester

Test and diagnose Cross-Origin Resource Sharing (CORS) headers for any URL

Advanced Options

Sample URLs to Test

Understanding CORS

What is CORS?

Cross-Origin Resource Sharing (CORS) is a security mechanism that allows a web page from one origin to request resources from a different origin. Without CORS, browsers block such cross-origin requests by default to prevent security vulnerabilities.

How CORS Works

When a browser makes a cross-origin request, it sends an Origin header. The server must respond with the appropriate Access-Control-Allow-Origin header. For non-simple requests, the browser first sends an OPTIONS preflight request to check if the actual request is permitted.

Key CORS Headers

Access-Control-Allow-Origin specifies allowed origins. Access-Control-Allow-Methods lists allowed HTTP methods. Access-Control-Allow-Headers defines allowed request headers. Access-Control-Allow-Credentials indicates if cookies are permitted.

Debugging CORS Errors

CORS errors appear in the browser console when a cross-origin request is blocked. Check that the server includes the correct CORS headers. For APIs, ensure the server allows your origin, the required methods, and any custom headers you send.

CORS Tester

Test and diagnose Cross-Origin Resource Sharing (CORS) headers for any URL

Features

  • Send real HTTP requests to a target URL and inspect CORS-related headers in the response
  • Reports Access-Control-Allow-Origin, Allow-Methods, Allow-Headers, Allow-Credentials, Max-Age
  • Tests preflight (OPTIONS) and actual-request behaviour
  • Runs in your browser — your request is sent FROM your origin, so the result reflects what your real app would see
  • Useful for debugging CORS-blocked production fetches

How to use

  1. Voer de URL die u wilt testen in het invoerveld in of selecteer een van de aangeboden voorbeeld-URL's voor snel testen.
  2. Kies de HTTP-methode (GET, POST, enz.) en voeg eventueel aangepaste headers toe in het gedeelte met geavanceerde opties.
  3. Klik op 'CORS testen' om een cross-origin-verzoek te verzenden en de gedetailleerde resultaten te bekijken, inclusief alle CORS-headers en hun waarden.

Tips & Best Practices

  • Each test sends a real HTTPS request to the target URL — the URL and your IP are visible to the target server.
  • CORS is enforced by the browser, not the server. The server sends headers; the browser decides whether to expose the response to JS.
  • For wildcard ACAO (`Access-Control-Allow-Origin: *`), the request will succeed but credentials (cookies) won't be sent — that's the spec.
  • Preflight (OPTIONS) is sent only for non-simple requests (custom headers, non-GET/POST methods, JSON body in some cases).
  • If the test fails, check the browser devtools Network tab — the actual error message is more detailed than this tool can surface.

FAQ

Wat is CORS en waarom is het belangrijk voor webontwikkelaars?

CORS (Cross-Origin Resource Sharing) is een browser-beveiligingsfunctie die bepaalt welke webpagina's verzoeken kunnen doen naar een ander domein dan dat waarvan de pagina werd geserveerd. Het is belangrijk omdat moderne webapplicaties vaak API's op verschillende domeinen moeten aanroepen, en zonder de juiste CORS-configuratie worden deze verzoeken door de browser geblokkeerd. CORS begrijpen is essentieel voor het bouwen van applicaties die met externe API's of microservices communiceren.

Waarom krijg ik een CORS-fout terwijl de API werkt in Postman of curl?

CORS is een door de browser afgedwongen beveiligingsbeleid en geen beperking aan de serverzijde. Tools zoals Postman en curl omzeilen CORS volledig omdat ze geen browsers zijn en het same-origin-beleid niet handhaven. De browser controleert specifiek op CORS-headers in het antwoord van de server en blokkeert het verzoek als deze ontbreken of onjuist zijn. Daarom kan een API perfect werken in Postman, maar falen in een browserapplicatie.

Wat is een preflight-verzoek en wanneer verstuurt de browser er een?

Een preflight-verzoek is een OPTIONS-verzoek dat de browser automatisch verstuurt voor het werkelijke verzoek om te controleren of de server het cross-origin-verzoek toestaat. De browser stuurt een preflight voor verzoeken die andere methoden gebruiken dan GET, HEAD of POST, die aangepaste headers bevatten, of die Content-Type-waarden gebruiken anders dan application/x-www-form-urlencoded, multipart/form-data of text/plain. De server moet reageren met passende CORS-headers om het werkelijke verzoek toe te staan.

Wat betekent Access-Control-Allow-Origin: * en is het veilig?

De wildcardwaarde * betekent dat de server verzoeken van elke oorsprong toestaat. Hoewel handig voor publieke API's, kan dit een beveiligingsrisico zijn voor private API's die met gevoelige gegevens werken. Bij gebruik van * kan de server Access-Control-Allow-Credentials niet ook op true instellen. Voor API's die authenticatie vereisen, moet u exacte toegestane origins opgeven in plaats van de wildcard.

Hoe los ik CORS-fouten op mijn server op?

Om CORS-fouten op te lossen, moet u uw server zo configureren dat hij de juiste CORS-headers in zijn antwoorden opneemt. Voeg minimaal Access-Control-Allow-Origin toe met ofwel een wildcard (*) of de specifiek aanvragende oorsprong. Voor niet-eenvoudige verzoeken voegt u ook Access-Control-Allow-Methods en Access-Control-Allow-Headers toe. De meeste webframeworks hebben CORS-middlewarepakketten die deze configuratie vereenvoudigen, zoals cors voor Express.js, django-cors-headers voor Django of rack-cors voor Ruby on Rails.

Doet deze tool daadwerkelijk echte cross-origin-verzoeken?

Ja, deze tool doet echte fetch-verzoeken vanuit uw browser naar de URL die u opgeeft, wat betekent dat het CORS-beleid van de browser volledig wordt afgedwongen. Als de doelserver geen CORS-headers bevat, blokkeert de browser het antwoord en toont de tool een CORS-geblokkeerde status. Dit geeft u een nauwkeurig beeld van hoe uw browserapplicatie zich zou gedragen bij het doen van hetzelfde verzoek.