CORS-tester
Test en diagnosticeer Cross-Origin Resource Sharing (CORS)-headers voor elke URL
Voorbeeld-URL's om te testen
CORS begrijpen
Wat is CORS?
Cross-Origin Resource Sharing (CORS) is een beveiligingsmechanisme dat een webpagina van één oorsprong toestaat om bronnen van een andere oorsprong op te vragen. Zonder CORS blokkeren browsers dergelijke cross-origin-verzoeken standaard om beveiligingslekken te voorkomen.
Hoe CORS werkt
Wanneer een browser een cross-origin-verzoek doet, stuurt hij een Origin-header. De server moet reageren met de juiste Access-Control-Allow-Origin-header. Voor niet-eenvoudige verzoeken stuurt de browser eerst een OPTIONS preflight-verzoek om te controleren of het werkelijke verzoek is toegestaan.
Belangrijkste CORS-headers
Access-Control-Allow-Origin specificeert toegestane origins. Access-Control-Allow-Methods vermeldt toegestane HTTP-methoden. Access-Control-Allow-Headers definieert toegestane verzoekheaders. Access-Control-Allow-Credentials geeft aan of cookies zijn toegestaan.
CORS-fouten debuggen
CORS-fouten verschijnen in de browserconsole wanneer een cross-origin-verzoek wordt geblokkeerd. Controleer of de server de juiste CORS-headers bevat. Zorg er bij API's voor dat de server uw origin, de vereiste methoden en eventuele aangepaste headers die u verstuurt toestaat.
CORS-tester
Test en diagnosticeer Cross-Origin Resource Sharing (CORS)-headers voor elke URL
Functies
- 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
Hoe te gebruiken
- Voer de URL die u wilt testen in het invoerveld in of selecteer een van de aangeboden voorbeeld-URL's voor snel testen.
- Kies de HTTP-methode (GET, POST, enz.) en voeg eventueel aangepaste headers toe in het gedeelte met geavanceerde opties.
- 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 en 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.
Veelgestelde vragen
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.