CORS Checker
Check करें कि API आपके origin से requests accept करती है या नहीं। Preflight OPTIONS और actual request चलाता है, सभी Access-Control-* headers दिखाता है।
CORS क्या है?
CORS (Cross-Origin Resource Sharing) एक browser security mechanism है। Default में https://a.com पर script https://b.com के responses नहीं पढ़ सकती। b.com के server को Access-Control-Allow-Origin headers भेजकर opt-in करना होता है। Non-simple requests (JSON के साथ POST, custom headers, आदि) के लिए browser पहले OPTIONS "preflight" भेजता है — अगर server का response आपके origin, method, या headers को allow नहीं करता तो actual request block होता है और DevTools में CORS error दिखता है।
CORS response headers समझाए गए
Access-Control-Allow-OriginSpecify करता है कि कौनसा origin allowed है। एक specific origin, "*" (कोई भी), या request origin echo।
Access-Control-Allow-Credentials"true" होने पर browser cookies/auth headers भेजता है। Allow-Origin: * के साथ combine नहीं हो सकता।
Access-Control-Allow-MethodsServer कौनसे HTTP methods allow करता है। केवल preflight response में relevant।
Access-Control-Allow-HeadersServer कौनसे request headers allow करता है। Non-simple headers जैसे Authorization, custom X-* के लिए relevant।
Access-Control-Expose-HeadersBrowser JavaScript को कौनसे response headers expose कर सकता है। Default में केवल short safelist।
Access-Control-Max-AgeBrowser preflight result कितने seconds cache कर सकता है। अधिक values दोहराए OPTIONS requests से बचाते हैं।
CORS Checker FAQ
मेरा browser CORS errors दिखाता है पर यह tool headers दिखाता है — क्यों?
CORS browser लागू करता है, server नहीं। यह tool हमारे backend पर चलता है, इसलिए CORS rules apply नहीं होते — हमें raw server response मिलती है। आपका browser Access-Control-* headers के आधार पर client-side पर request block करता है। यहां दिखाए गए headers अगर आपके origin/method/headers से match नहीं करते, तो browser block करेगा, भले ही server ने response दी हो।
Preflight OPTIONS request क्या है?
"Non-simple" cross-origin requests (basic headers वाले simple GET/HEAD/POST के अलावा कुछ भी) के लिए browser पहले OPTIONS भेजकर पूछता है "क्या यह request भेज सकता हूं?"। Server Access-Control-Allow-Methods, Allow-Headers, Allow-Origin से respond करता है। अगर ये आपके actual request को allow करते हैं, तो browser proceed करता है। नहीं तो block करता है।
Access-Control-Allow-Origin: * मेरे request के लिए पर्याप्त क्यों नहीं?
अगर आपका request credentials (cookies, Authorization header, TLS client cert) include करता है, तो browser "*" reject करता है और specific origin चाहिए। Server को आपका exact origin Access-Control-Allow-Origin में echo करना होगा और Access-Control-Allow-Credentials: true set करना होगा।
क्या CORS server-to-server requests के लिए लागू होता है?
नहीं। CORS केवल browser security feature है। curl, server से Node fetch, Postman, या कोई भी non-browser client CORS पूरी तरह ignore करते हैं। अगर non-browser environment में "CORS error" दिखे तो actual problem कहीं और है (network, auth, गलत URL)।
CORS error कैसे fix करूं?
Server पर fix करें, client पर नहीं। सही Access-Control-Allow-Origin (आपका frontend origin), Allow-Methods (आप जो GET/POST/etc. use करते हैं), Allow-Headers (custom या auth headers) add करें। Credentials के लिए Allow-Credentials: true add करें। सुनिश्चित करें कि OPTIONS handle हो और 2xx return करे। CORS disable करने वाले browser extensions development shortcut हैं — असली app उन पर depend करके कभी deploy न करें।