CORS Tester
Test and diagnose Cross-Origin Resource Sharing (CORS) headers for any URL
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
- Ange URL:en du vill testa i inmatningsfältet eller välj en av de angivna exempel-URL:erna för snabb testning.
- Välj HTTP-metoden (GET, POST osv.) och lägg eventuellt till anpassade rubriker i avsnittet för avancerade alternativ.
- Klicka på 'Testa CORS' för att skicka en korsdomänförfrågan och se de detaljerade resultaten inklusive alla CORS-rubriker och deras värden.
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
Vad är CORS och varför är det viktigt för webbutvecklare?
CORS (Cross-Origin Resource Sharing) är en säkerhetsfunktion i webbläsaren som styr vilka webbsidor som kan göra förfrågningar till en annan domän än den som levererade sidan. Det är viktigt eftersom moderna webbapplikationer ofta behöver anropa API:er på olika domäner, och utan korrekt CORS-konfiguration blockeras dessa förfrågningar av webbläsaren. Att förstå CORS är väsentligt för att bygga applikationer som interagerar med tredjeparts-API:er eller mikrotjänster.
Varför får jag ett CORS-fel även om API:et fungerar i Postman eller curl?
CORS är en säkerhetspolicy som tillämpas av webbläsaren, inte en serversidans begränsning. Verktyg som Postman och curl kringgår CORS helt eftersom de inte är webbläsare och inte tillämpar same-origin-policyn. Webbläsaren kontrollerar specifikt CORS-rubriker i serverns svar och blockerar förfrågan om de saknas eller är felaktiga. Det är därför ett API kan fungera perfekt i Postman men misslyckas i en webbläsarapplikation.
Vad är en preflight-förfrågan och när skickar webbläsaren den?
En preflight-förfrågan är en OPTIONS-förfrågan som webbläsaren automatiskt skickar före den faktiska förfrågan för att kontrollera om servern tillåter korsdomänförfrågan. Webbläsaren skickar en preflight för förfrågningar som använder andra metoder än GET, HEAD eller POST, eller som inkluderar anpassade rubriker, eller som använder andra Content-Type-värden än application/x-www-form-urlencoded, multipart/form-data eller text/plain. Servern måste svara med lämpliga CORS-rubriker för att tillåta att den faktiska förfrågan fortsätter.
Vad betyder Access-Control-Allow-Origin: * och är det säkert?
Jokertecken-värdet * betyder att servern tillåter förfrågningar från valfritt ursprung. Även om det är bekvämt för publika API:er kan det vara en säkerhetsrisk för privata API:er som hanterar känsliga data. När * används kan servern inte också ange Access-Control-Allow-Credentials till true. För API:er som kräver autentisering bör du ange exakta tillåtna ursprung istället för att använda jokertecknet.
Hur kan jag åtgärda CORS-fel på min server?
För att åtgärda CORS-fel måste du konfigurera din server så att den inkluderar lämpliga CORS-rubriker i sina svar. Lägg minst till Access-Control-Allow-Origin med antingen ett jokertecken (*) eller det specifika begärande ursprunget. För icke-enkla förfrågningar lägger du också till Access-Control-Allow-Methods och Access-Control-Allow-Headers. De flesta webbramverk har CORS-mellanprogrampaket som förenklar denna konfiguration, såsom cors för Express.js, django-cors-headers för Django eller rack-cors för Ruby on Rails.
Gör detta verktyg verkligen riktiga korsdomänförfrågningar?
Ja, detta verktyg gör riktiga fetch-förfrågningar från din webbläsare till URL:en du anger, vilket innebär att webbläsarens CORS-policy tillämpas fullt ut. Om målservern inte inkluderar CORS-rubriker blockerar webbläsaren svaret och verktyget visar status CORS blockerad. Detta ger dig en korrekt bild av hur din webbläsarapplikation skulle bete sig när den gör samma förfrågan.