2013-10-07 6 views
5

में प्रमाण पत्र विशेषताएँ हम एक कोणीय जेएस आधारित एप्लिकेशन को कार्यान्वित कर रहे हैं जो एक अलग डोमेन में होस्ट की गई एक बाकी वेब सेवा का उपयोग करता है। निम्न स्क्रिप्ट का उपयोग सीओआरएस के लिए किया जाता है और यह क्रोम और फ़ायरफ़ॉक्स पर पूरी तरह से काम करता है। प्रमाणीकरण करते समय आईई 9 और सफारी में यह एक मुद्दा है। ऐसा लगता है कि यह समस्या के साथ उन ब्राउज़रों में प्रमाण-पत्र विशेषता के साथ है। क्या कोई अन्य तरीका है कि आईई और सफारी सीओआरएस का समर्थन करता है?इस समस्या में क्रॉस ओरिजिनल रिसोर्स शेयरिंग

<script type="text/javascript"> 
    XMLHttpRequest.prototype.realSend = XMLHttpRequest.prototype.send; 
    XMLHttpRequest.prototype.send = function(vData) { 
     this.withCredentials = true; 
     this.realSend.apply(this, arguments); 
    }; 
</script> 
+0

यदि आप IE9 या पुराने में प्रमाणित क्रॉस मूल अनुरोधों के बारे में पूछ रहे हैं, तो उत्तर "समर्थित नहीं है"। इन ब्राउज़रों में केवल XDomainRequest के माध्यम से सीमित सीओआरएस समर्थन है। –

+0

एनओपी। मैं आईई 10 + संस्करणों के लिए पूछ रहा हूँ – Shanaka

उत्तर

7

विभिन्न परिदृश्यों के मुताबिक हमने कोशिश की कि हम निम्नलिखित सारांश के साथ आ सकते हैं। उम्मीद है कि उपयोगी होगा।

  1. ब्राउज़र विनिर्देशों IE10 + और सफारी 4 संस्करणों के अनुसार एक्सएचआर का समर्थन करता है और withCredentials जोड़कर देखते हैं।
  2. इसका उपयोग उपरोक्त लिपि में किसी भी मुद्दे के बिना सीओआरएस के लिए किया जा सकता है।
  3. अन्य आईई संस्करणों (9-) के लिए हमें एक्सडीआर का उपयोग करने की आवश्यकता है।
  4. यूआरएल रीराइटिट मोड सर्वर पक्ष के साथ सफल नहीं था जब यह HTTPS पर आता है।

समाधान बहुत आसान था। डिफ़ॉल्ट रूप से आईई और सफारी ने तृतीय पक्ष कुकीज़ को अक्षम कर दिया है। चूंकि उपयोगकर्ता लॉग इन करने के लिए क्रेडेंशियल्स में प्रवेश करने के बाद दो अलग-अलग डोमेन का उपयोग करता है, इसलिए वे ब्राउज़र उस कुकी को सहेजने में असमर्थ थे। इसके कारण अन्य सभी अनुरोध अनधिकृत थे। 3 पार्टी कुकीज़ अनुमति देने के लिए

कदम

  • आईई 10 - इंटरनेट विकल्प> गोपनीयता> उन्नत> तृतीय पक्ष कुकी> स्वीकार
  • सफारी - प्राथमिकताएं> गोपनीयता> कुकी अवरुद्ध करें> कभी

इस समस्या के कारण हमने पाया कि AngularJS संस्करण 1.1.1+ में उन्होंने 'कॉन्फ़िगरेशन' मान को 'कॉन्फ़िगरेशन' मॉड्यूल में सेट करके इसे आसान बना दिया है ( $ httpProvider.defaults.withCredentials = true;)

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

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