CORS रिक्वेस्ट टेस्टर
अपने ब्राउज़र से किसी भी API को असली क्रॉस-ओरिजिन रिक्वेस्ट भेजकर देखें कि CORS उसे अनुमति देता है या नहीं। preflight कब चाहिए बताता है और हेडर पढ़ने लायक दिखाता है।
CORS टेस्टर क्या है?
यह CORS टेस्टर आपके ब्राउज़र से असली क्रॉस-ओरिजिन रिक्वेस्ट भेजता है – आपके चुने मेथड, Content-Type, कस्टम हेडर और क्रेडेंशियल मोड के साथ – और रिपोर्ट करता है कि ब्राउज़र JavaScript को रिस्पॉन्स पढ़ने देता है या नहीं। भेजने से पहले यह समझाता है कि रिक्वेस्ट "simple" है या उसे OPTIONS preflight चाहिए और क्यों।
CORS टेस्टर का उपयोग कैसे करें
- टेस्ट करने के लिए API URL डालें।
- मेथड, वैकल्पिक Content-Type और
Authorization: Bearer xजैसा वैकल्पिक कस्टम हेडर चुनें। - अगर आपका ऐप credentials: include इस्तेमाल करता है तो "Send cookies / credentials" टिक करें।
- preflight की व्याख्या पढ़ें, फिर Send test request दबाएं।
- अनुमति मिलने पर स्टेटस और JavaScript को दिखने वाले हेडर देखें; ब्लॉक होने पर सटीक CORS एरर के लिए ब्राउज़र कंसोल देखें।
CORS टेस्टर का उपयोग कब करें
इसे यह जाँचने के लिए इस्तेमाल करें कि पब्लिक API को ब्राउज़र ऐप से कॉल किया जा सकता है या नहीं, या ख़ास हेडर के साथ CORS एरर दोहराने के लिए। ओरिजिन हमेशा https://algokit.dev है, इसलिए जो सर्वर सिर्फ़ आपके अपने डोमेन को अनुमति देता है वह सही ढंग से ब्लॉक दिखेगा; सटीक मिलान के लिए अपनी साइट से टेस्ट करें। यह CORS विफलताओं को नेटवर्क या TLS एरर से अलग नहीं कर सकता – ब्राउज़र यह नहीं बताता।
CORS टेस्टर कैसे काम करता है
टूल पेज के ओरिजिन (https://algokit.dev) से mode: "cors" के साथ fetch() कॉल करता है, ठीक वैसे जैसे आपका अपना फ़्रंट-एंड कोड करता। preflight की व्याख्या Fetch स्टैंडर्ड का पालन करती है: GET/HEAD/POST के अलावा मेथड, form-urlencoded, multipart/form-data या text/plain के अलावा Content-Type, या कोई भी कस्टम हेडर OPTIONS preflight को ट्रिगर करता है। जब ब्राउज़र रिस्पॉन्स ब्लॉक करता है तो वह सामान्य TypeError फेंकता है और जानबूझकर कारण छिपाता है, इसलिए टूल कंसोल देखने को कहता है।
सामान्य उपयोग मामले
- SPA में इंटीग्रेट करने से पहले जाँचना कि थर्ड-पार्टी API Access-Control-Allow-Origin भेजती है या नहीं।
- पता लगाना कि आपकी रिक्वेस्ट का कौन-सा हेडर preflight ट्रिगर करता है।
- पुष्टि करना कि credentials: include काम करता है (इसके लिए * नहीं, कोई ख़ास ओरिजिन चाहिए)।
- देखना कि Access-Control-Expose-Headers से कौन-से रिस्पॉन्स हेडर JavaScript को दिखते हैं।
सुरक्षा नोट
रिक्वेस्ट आपके ब्राउज़र से सीधे आपके डाले URL पर जाती है; credentials चालू होने पर उस साइट की आपकी कुकी भी भेजी जाती हैं।
अक्सर पूछे जाने वाले प्रश्न
curl चलता है पर ब्राउज़र में क्यों फ़ेल होता है?
CORS सिर्फ़ ब्राउज़र लागू करते हैं। curl और सर्वर इसे अनदेखा करते हैं, इसलिए API curl से चल सकती है और फिर भी वेब पेज से पढ़ने योग्य नहीं हो सकती।
preflight कब ट्रिगर होता है?
GET, HEAD या POST के अलावा कोई मेथड, application/json जैसा नॉन-सिंपल Content-Type, या Authorization जैसा कोई भी कस्टम रिक्वेस्ट हेडर।
क्या Access-Control-Allow-Origin: * कुकी के साथ इस्तेमाल हो सकता है?
नहीं। credentials के साथ सर्वर को सटीक ओरिजिन दोहराना होता है और Access-Control-Allow-Credentials: true भेजना होता है।