Jaringan/HTTP
CORS Checker / Explainer
Menjelaskan langkah demi langkah apakah browser akan mengizinkan permintaan cross-origin — klasifikasi simple/preflight, pemeriksaan header Access-Control-* pada respons, ringkasan.
Satu per baris, "Nama" atau "Nama: nilai" — nilai tidak memengaruhi klasifikasi.
Ambil dari tab Network di DevTools (header respons itu sendiri atau preflight OPTIONS) atau dari curl -I.
CORS (Cross-Origin Resource Sharing) is a browser mechanism that decides whether JavaScript from one site is allowed to read a response from a server on a different domain. This tool walks through, step by step, whether a specific request will succeed and which Access-Control-* headers it needs.
How to use it
- Provide the method, the request's origin, and the server's response headers (Access-Control-Allow-Origin, etc.) and the tool determines whether the browser will let the request through.
- The "simple" vs. "preflight" classification shows whether the browser will first send an OPTIONS preflight request before the actual one.
- The summary gives the exact reason for a failure when a request would be blocked — faster than parsing the browser console's error message.
Common uses
- Debugging the classic "has been blocked by CORS policy" error with a step-by-step explanation of what's missing, instead of guessing.
- Checking a backend's CORS configuration before the frontend and API end up on separate domains in production.
- Understanding why a request with credentials: include is rejected even though Access-Control-Allow-Origin looks correct.
Things to keep in mind
CORS protects the user's browser, not the server — the restriction only applies to requests made from page JavaScript in a browser, not to requests from curl, Postman, or server-to-server calls.
Access-Control-Allow-Origin: * is incompatible with credentials: include — for requests carrying cookies or authorization, the server must return a specific origin instead of a wildcard.
Artikel tentang alat ini: CORS: mengapa browser memblokir request "biasa" ke domain lain
Pertanyaan yang sering diajukan
Mengapa permintaan gagal dengan error CORS meski server merespons dengan sukses?
CORS diterapkan oleh browser, bukan server — jika respons kehilangan header Access-Control-Allow-Origin yang cocok dengan origin peminta, browser memblokir JavaScript membaca respons, meski permintaan itu sendiri selesai.
Apa perbedaan antara permintaan sederhana dan permintaan preflight?
Permintaan sederhana (GET/POST dasar dengan header standar) langsung diteruskan, sedangkan permintaan dengan header kustom, metode lain, atau tipe konten tertentu memicu permintaan preflight OPTIONS terlebih dahulu untuk memeriksa izin sebelum permintaan sebenarnya dikirim.
Apakah memeriksa header CORS di sini mengirim data saya ke server?
Alat ini memeriksa header yang Anda berikan atau mengambilnya langsung dari browser Anda — tidak ada server perantara yang menyimpan data permintaan Anda.
Apakah CORS melindungi API dari permintaan berbahaya?
Tidak. CORS hanya membatasi apa yang bisa dibaca JavaScript di browser — penyerang yang menggunakan curl, Postman, atau skrip backend sepenuhnya melewatinya, jadi autentikasi dan otorisasi yang sebenarnya harus diterapkan di server.
Mengapa Access-Control-Allow-Origin: * tidak berfungsi bersama credentials: include?
Spesifikasi melarang kombinasi ini secara sengaja demi keamanan: mengizinkan credentials (cookie, header otorisasi) bersama wildcard yang menerima origin apa pun akan menjadi celah keamanan serius, jadi server harus mengembalikan origin yang eksak saat menggunakan credentials.