
सीओआरएस द्वारा रोकी गई त्रुटियां: "एक्सेस-कंट्रोल-अनुमति-उत्पत्ति द्वारा उत्पत्ति की अनुमति नहीं है"
परिचय:
क्रॉस-ऑरिजिन रिसोर्स शेयरिंग (सीओआरएस) के दौरान "एक्सेस-कंट्रोल-अलाउंस-ऑरिजिन द्वारा मूल की अनुमति नहीं है" त्रुटि उत्पन्न होती है, जब क्लाइंट-साइड स्क्रिप्ट अपने द्वारा चलाए जा रहे मूल से भिन्न मूल से संसाधन तक पहुंचने का प्रयास करती है। from.
कारण:
इस त्रुटि के कई संभावित कारण हैं:
- समान-उत्पत्ति नीति: जावास्क्रिप्ट प्रतिबंधित है सर्वर की स्पष्ट अनुमति के बिना उसके डोमेन के बाहर संसाधनों तक पहुँचना। यह नीति दुर्भावनापूर्ण स्क्रिप्ट को उपयोगकर्ता डेटा चोरी करने या साइट की सुरक्षा से समझौता करने से रोकती है।
- गलत कॉन्फ़िगर सर्वर प्रतिक्रिया: सर्वर को अनुदान के जवाब में उचित एक्सेस-कंट्रोल-अनुमति-उत्पत्ति हेडर शामिल करना होगा विशिष्ट मूल तक पहुंच. यदि यह हेडर गुम या गलत है, तो ब्राउज़र अनुरोध को रोक देगा।
समस्या का समाधान:
- सर्वर प्रतिक्रिया की जांच करें : यह सुनिश्चित करने के लिए सर्वर के प्रतिक्रिया हेडर का निरीक्षण करें कि एक्सेस-कंट्रोल-अनुमति-उत्पत्ति हेडर शामिल है और वांछित मूल पर सेट है।
- सर्वर पर CORS सक्षम करें: यदि सर्वर में CORS सक्षम नहीं है, इसे इसका समर्थन करने के लिए कॉन्फ़िगर किया जाना चाहिए। इसमें वेब सर्वर की कॉन्फ़िगरेशन फ़ाइलों में CORS नियम स्थापित करना शामिल हो सकता है।
- JSONP का उपयोग करें: JSONP (पैडिंग के साथ JSON) समान-मूल नीति के लिए एक समाधान है जो डेटा को वापस करने की अनुमति देता है XML दस्तावेज़ के बजाय फ़ंक्शन कॉल के रूप में। हालाँकि, सर्वर को JSONP का समर्थन करने के लिए कॉन्फ़िगर किया जाना चाहिए। अलग-अलग मूल और उन्हें क्लाइंट-साइड स्क्रिप्ट में पास करें।