के बाद सीओआरएस अनुरोध विफल रहता है मुझे सफारी को सीओआरएस अनुरोधों को संभालने के तरीके में समस्या है। परिदृश्य निम्नलिखित पर विचार करें:सफारी 302 रीडायरेक्ट
- domainA एक पृष्ठ domainB करने के लिए एक XHR अनुरोध (मूल हैडर domainA पर सेट है)
- domainB रिटर्न 302 रीडायरेक्ट बनाता होस्ट करता करते DomainC (मूल हैडर अशक्त है, जो हो रहा है पर सेट है आरएफसी के साथ ठीक)
- DomainC वास्तविक सामग्री
यह क्रोम, एफएफ में काम करता है के साथ 200 प्रतिक्रिया वापस, लेकिन यह सफारी (Mozilla/5.0 (Macintosh पर परीक्षण किया; Intel Mac OS X 10_10_5) पर विफल रहता है AppleWebKit/600.8 9। (केएचटीएम, जैसे गेको) संस्करण/8.0.8 सफारी/600.8.9)।
जब मैं xhr.withCredentials के बिना अनुरोध करता हूं, तो पहले, सफारी डोमेनसी से पूर्व वास्तविक अनुरोध के विकल्प विकल्प बनाता है, जो आईएमएचओ नस्लीय नहीं है क्योंकि सभी अनुरोध सरल अनुरोध हैं, लेकिन मैं इसे संभाल सकता हूं। समस्या यह है कि सफारी डोमेनसी को प्रीफलाइट अनुरोध के बाद विफल रहता है, "नल से कोई अनुरोध नहीं कर सकता"। मैं एक्सेस-कंट्रोल-अनुमति-उत्पत्ति को सेट करके और इसे एक्सेस-कंट्रोल-अनुमति-प्रमाण-पत्र शीर्षलेख (वे पारस्परिक रूप से अनन्य) छोड़कर इसे बाईपास कर सकते हैं, जो इस परिदृश्य को काम करेगा। हालांकि मुझे अभी भी लगता है कि यह सही व्यवहार नहीं है।
अब, मुझे यह है कि मुझे पास करने के लिए प्रमाण पत्र की आवश्यकता है (और नहीं, मैं इसे किसी अन्य तरीके से पास नहीं कर सकता क्योंकि यह किसी तीसरे पक्ष सर्वर पर निर्भर करता है)। तो चलिए
xhr.withCredentials
सही पर सेट करते हैं और हम करने के लिए "शून्य से किसी भी अनुरोध नहीं कर सकते" वापस और अब भी wildcarding पहुंच-नियंत्रण-अनुमति दें-क्रेडेंशियल मदद नहीं करता है।
मुझे लगता है कि सभी कोरस हेडर ठीक से सेट हैं, लेकिन कृपया मुझे जांचने में संकोच न करें। टेस्ट उदाहरण यहां पाया जा सकता है: http://a.ihatesafari.com
यहां क्या हो रहा है? क्या यह एक बग है या क्या मुझे कुछ याद आ रही है?
जवाब
यह डोमेनए के लिए एक एक्सएचआर बनाने और डोमेनसी पर रीडायरेक्ट करने के लिए डोमेनए के सरल मामले में भी विफल रहता है। – hrdwdmrbl