2013-04-02 18 views
8

मेरे पास अगले डोमेन पर दो एप्लिकेशन हैं: www.bar.com और www.foo.bar.com। दूसरा आवेदन पहले आवेदन (क्रॉस-डोमेन अनुरोध का प्रयोग करके) के माध्यम से प्राधिकरण बनाता है यह मैं ब्राउज़र को कुकी सेट करता है के बाद, और इंटरनेट एक्सप्लोरर में यह काम नहीं करता:इंटरनेट एक्सप्लोरर प्राधिकरण के लिए क्रॉस डोमेन कुकीज़ सेट

$.cookie("SESSION_KEY", loginResult.sessionKey, { 
     expires: 365, 
     path: "/", 
     domain: ".bar.com" 
}); 

कोड सभी ब्राउज़रों excepti इंटरनेट एक्सप्लोरर वी में काम करता है 9। कुकी सेट नहीं है। मेरे द्वारा यह कैसे किया जा सकता है?

उत्तर

1

यह आईई सेटिंग्स के कारण है। Tools मेनू से, Internet Options चुनें। Security टैब पर नेविगेट करें। सुरक्षा वेब खोलने के लिए इंटरनेट वेब सामग्री क्षेत्र का चयन करें और Custom Level पर क्लिक करें।

Miscellaneous सेटिंग्स खोजें। Access data sources across domains सक्षम करने का प्रयास करें। सेटिंग्स को प्रभावी होने के लिए आपको IE को पुनरारंभ करने की आवश्यकता हो सकती है।

+8

लेकिन, यह एक वेब एप्लिकेशन है। मैं सभी उपयोगकर्ताओं को अपने ब्राउज़र में ऐसा करने के लिए नहीं कह सकता। :) – Andrew

2

आईई, बाजार में केवल एक वेब ब्राउज़र के रूप में, लागू करता है आंशिक रूप से पी 3 पी standart

तो आप सेट कर सकते सर्वर प्रतिक्रिया का उपयोग कर कुकीज़ (CORS में स्वीकृति कुकीज़ के बारे में है) - क्या करने के लिए इस आप में इस हेडर सेट करना होगा (अपने CORS अनुरोध करने के लिए, किसी भी अन्य मामले में

$response->headers->set('P3P', 'CP="random_text"'); 

तुम भी के बारे में फ्लैग जोड़ने याद रखना चाहिए 'withCredentials = सच': सर्वर प्रतिक्रिया (जिन्हें कुकी सेट) (मैं कॉपी-पेस्ट रेखा से नीचे मेरी पीएचपी सिम्फोनी परियोजना से) कुकीज़ अनुरोध/प्रतिक्रिया से भेज/सहेजा जाएगा)।

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