CORS Tester
Test cross-origin resource sharing headers for any URL. Inspect the preflight OPTIONS response and see exactly what's blocking your requests.
Comma-separated list of headers your client sends.
About the Tool
If you build web apps, you know the pain of cross-origin resource sharing errors. You make a fetch request, and the browser throws a red wall of text in your console. Our cors tester fixes this. It acts as an independent proxy that runs the exact same preflight checks your browser does, but actually shows you what went wrong instead of just blocking the connection.
Server-side, not browser-side. Requests are sent from a serverless function rather than from your browser tab. That matters: a browser-based tester is itself subject to the Same-Origin Policy, so a failing request is blocked before it can report anything useful. Sending server-side means every response header comes back intact — including the ones on a request your browser would have refused outright.
We built this because debugging Access-Control-Allow-Origin issues blindly takes far too long. You need a fast way to test cors headers online without browser extensions or Postman. This utility sends the OPTIONS request, reads the raw response headers, and names the exact server change to make.
One honest limit: we test what the server returns to us. If your API varies its response by cookie or session, our result reflects an unauthenticated request rather than yours.
How to Use
Testing your endpoint takes just three quick steps.
- Drop in your URL: Paste the full endpoint you want to test into the Target URL box.
- Set your Origin: Type the URL of the frontend app that is trying to make the request (like
https://localhost:3000). - Run the test: Hit the button. The tool sends a preflight OPTIONS request followed by your chosen HTTP method.
You'll immediately see a pass, fail, or warning verdict. If something fails, open the check card to see exactly how to fix your server config.
Privacy & Security
Here's the thing — testing APIs sometimes involves sensitive endpoints. Your security matters.
When you use this tool, your request routes through a secure serverless function that acts as a pass-through proxy. We do not log your endpoints, we do not store your custom headers, and we never save your API responses. The data exists in memory just long enough to test the CORS policy and send the results back to your screen. The moment you close the tab, the test is gone permanently.
Features
Most tools just ping a URL and check for a 200 OK. This one digs deeper to catch the edge cases that actually break your app.
- Preflight Analysis: Automatically sends an OPTIONS request to check what your server permits before the real request fires.
- Credential Validation: Checks if your server safely allows cookies or authorization headers without using the dangerous wildcard origin.
- Vary Header Detection: Ensures your caching layers won't accidentally serve a CORS response to the wrong domain.
- Raw Header Inspection: Gives you full visibility into the raw response headers so you can verify exactly what your server sent back.
Technical Specifications
For the developers who want to know how the testing engine works under the hood.
| Check Component | Specification |
|---|---|
| Request Engine | Server-side proxy bypass |
| Methods Tested | OPTIONS (Preflight) + Selected Method |
| Origin Matching | Strict string comparison vs Access-Control-Allow-Origin |
| Credential Check | Validates Access-Control-Allow-Credentials flag |
| Header Validation | Cross-checks requested vs allowed headers |
CORS Response Header Reference
Every CORS decision a browser makes comes down to these six response headers. This tool checks all of them.
| Header | What it does | Example value |
|---|---|---|
Access-Control-Allow-Origin | The single origin allowed to read the response. Must match the requesting origin exactly, or be *. | https://app.example.com |
Access-Control-Allow-Methods | HTTP methods permitted for the actual request. Returned on the preflight response. | GET, POST, PUT, DELETE |
Access-Control-Allow-Headers | Request headers the client is allowed to send. Anything not listed here fails preflight. | Content-Type, Authorization |
Access-Control-Allow-Credentials | Allows cookies and auth headers. Cannot be combined with a wildcard origin — you must echo the exact origin. | true |
Access-Control-Max-Age | How long, in seconds, the browser may cache the preflight result instead of re-sending OPTIONS. | 86400 |
Access-Control-Expose-Headers | Response headers JavaScript is allowed to read. Without it, only a small safelist is visible. | X-Request-Id, X-Total-Count |
Plus one that is not an Access-Control-* header: Vary: Origin. If your server echoes the request origin, you must also send Vary: Origin so caches and CDNs do not serve one origin's CORS response to another.
Where to Go Next
Most people arrive here mid-error. These walk through the three failures we see most:
- Fix the No Access-Control-Allow-Origin error — the one nearly everyone hits first.
- Fix a failing CORS preflight — when the OPTIONS request itself is rejected.
- CORS wildcard and credentials — why a star stops cookies working.
Want the background rather than the fix? Start with what CORS is and why browsers enforce it, then how preflight requests work. The full CORS headers reference covers every Access-Control value in one table.
Other Tools for the Same Debugging Session
CORS is rarely the only thing going wrong. Three that pair naturally with this one:
- HTTP headers checker — see every response header, not just the CORS ones.
- API tester — send a full request with a body and auth once the headers are right.
- Webhook tester — inspect what a third-party service actually sends you.
Frequently Asked Questions
Why does my request work in Postman but fail in the browser?
+
What is a preflight request?
+
Can I just set my origin to a wildcard (*)?
+
Why do I need the Vary: Origin header?
+
The tester says my headers are correct but the browser still blocks me. Why?
+
Why does my request work on localhost but break in production?
+
Can a CORS error hide a redirect?
+
My custom header is rejected even though the origin is allowed. What now?
+
Does Access-Control-Max-Age actually help?
+
Is CORS a security feature that protects my API?
+
Related Tools You Might Like
YAML Creator & Validator
Create, validate, and generate YAML files with predefined templates for deployment configurations
JWT Decoder
Decode and inspect JSON Web Tokens — view header, payload, and expiration
Markdown Editor
Write and preview Markdown with live rendering, toolbar, and export options
IP Lookup
Look up IP address geolocation, ISP, timezone, and network details
Caesar Cipher & ROT13 Decoder
Classical ciphers and encodings: Caesar, ROT13, XOR, Base64, hex, Morse
Hash Generator
Generate MD5, SHA-1, SHA-256, SHA-384, and SHA-512 hashes for text and files
