2013-10-29 17 views
8

मैंने देखा है कि कुछ ब्राउज़र कम से कम कुछ शर्तों के तहत, सीओआरएस अनुरोधों में प्रमाण पत्र के साथ समर्थन नहीं करते हैं। एक ही बयान केCORS के साथ प्रमाण पत्र - समर्थन सीमित?

INVALID_STATE_ERR: DOM Exception 11: An attempt was made to use an object that is not, or is no longer, usable.

फिर

SCRIPT5022: InvalidStateError

और सफारी 5 में (लेकिन 6) मैं मिलता है, के जवाब में: विशेष रूप से, आईई 10 में, स्थापित करने के लिए में xhr.withCredentials = true परिणाम के प्रयास में ।

क्या ये ज्ञात समस्याएं हैं, या क्या मैं अपना एक्सएचआर गलत तरीके से स्थापित कर रहा हूं? क्या कोई ब्राउज़र है जो ब्राउज़र withCredentials का समर्थन करता है?

+0

http://caniuse.com/#search=cors –

+0

क्या आप 'ओपन' के बाद' क्रेडेंशियल 'सेट कर रहे हैं लेकिन' प्रेषण 'से पहले? – apsillers

+0

['क्रेडेंशियल्स' spec के साथ] (http://www.w3.org/TR/XMLHttpRequest/#the-withcredentials-attribute) के अनुसार: "* सेट करते समय: 'अमान्यस्टेट त्रुटि' अपवाद फेंकता है यदि राज्य' अनसुलझा 'या' खुला ', या यदि 'भेजना()' ध्वज सेट किया गया है। * "यह सुझाव देता है कि उसे' भेजने()' कॉल करने से पहले शर्त लगानी चाहिए। हालांकि, कुछ ब्राउज़र इस विनिर्देशन नियम से ग़लत रूप से अधिक सख्त हो सकते हैं। क्या आप अपना वास्तविक कोड पोस्ट कर सकते हैं? – apsillers

उत्तर

13

August 16, 2011 XHR draftwithCredentials स्थापित करने के लिए एक नियम निर्दिष्ट करता है:

जब सेट: एक INVALID_STATE_ERR अपवाद फेंकता है तो राज्य खोला नहीं है या यदि send() झंडा सच है।

हालांकि, January 17, 2012 draft अधिक अनुमतियां दी गई है:

जब सेट: एक InvalidStateError अपवाद फेंकता है तो राज्य नहीं भेजे गए या खोला नहीं है, या send() ध्वज सेट है, तो।

आप शायद .open, जो 2011 कल्पना ने उसकी अनुमति नहीं लेकिन 2012 कल्पना द्वारा अनुमति दी है कॉल करने से पहले withCredentials की स्थापना कर रहे हैं। दोनों के साथ अनुपालन करने के लिए, .open पर अपनी कॉल के बाद बस अपनी संपत्ति असाइनमेंट को स्थानांतरित करें।

+0

धन्यवाद, वह था। – Dan

संबंधित मुद्दे