2011-09-12 11 views
7

मैं एक iframe है खो देता है:IE9 कुकीज़ के बाद पुन: निर्देशित

  1. सर्वर के लिए एक पोस्ट अनुरोध करता
  2. सर्वर की ओर 302 और कुकी सेट
  3. ब्राउज़र कुकीज़ नहीं बचाता है, बल्कि करता है एक पोस्ट (नहीं है जानते हो क्यों नहीं मिल, लेकिन यह कोई फर्क नहीं पड़ता)
  4. कुकी # 3 से

खो रहे हैं मैं एक वैकल्पिक हल मिल गया है:

+०१२३५१६४१०
Response.AddHeader("Pragma", "no-cache"); 
Response.AddHeader("Cache-Control", "no-cache"); 

लेकिन इससे मदद नहीं मिली। एमबी कोई भी जानता है कि इस मुद्दे को क्या ठीक कर सकता है?

+0

यह पोस्ट इस प्रश्न का उत्तर देने लगता है: http://stackoverflow.com/questions/389456/cookie-blocked-not-saved-in-iframe-in-internet-explorer – sammcd

उत्तर

11

आप यह देखना चाहते हैं कि आपका ब्राउज़र जीईटी के बजाए पोस्ट क्यों कर रहा है, क्योंकि इसका तात्पर्य है कि आपके द्वारा छोड़ी गई जानकारी का एक महत्वपूर्ण हिस्सा है। कोई ब्राउज़र follow a HTTP/302 redirect with a POST नहीं होगा।

आईई 9 में, redirection responses are cached यदि हेडर अनुमति देते हैं (IE8 और नीचे रीडायरेक्ट कैश नहीं करेंगे)।

आप पूरी तरह से 302 रीडायरेक्ट पर एक कुकी सेट कर सकते हैं। यहां दो संभावनाएं हैं:

  1. आपकी कुकी को छोड़ दिया जा रहा है क्योंकि आप प्रतिक्रिया पर एक पी 3 पी शीर्षलेख की आपूर्ति करने में विफल रहे हैं जो दर्शाता है कि आपकी गोपनीयता प्रथाएं उपयोगकर्ता की इच्छाओं के अनुकूल हैं।
  2. आपकी पुनर्निर्देशन प्रतिक्रिया उपयोगकर्ता के कैश से खींची जा रही है, सर्वर नहीं, और कैश प्रतिक्रिया ने कुकी सेट नहीं की है।

यह देखते हुए कि आपको IFRAME में यह समस्या हो रही है, # 1 अधिक संभावना है। (Quick Look at P3P देखें)

+0

लेकिन एफएफ में कुकीज़ के साथ सब कुछ ठीक क्यों है क्रोम और ओपेरा? वे कुकी को बचाते हैं और प्राप्त करने के साथ रीडायरेक्ट करते हैं। – donRumatta

+1

मुझे एक ही समस्या थी, और वर्णन के अनुसार पी 3 पी हेडर जोड़कर इसे आसानी से हल किया गया। पूर्ण स्पष्टीकरण के लिए http://msdn.microsoft.com/en-us/library/ms537341.aspx देखें, लेकिन यदि आप बस त्वरित फिक्स चाहते हैं तो इस हेडर को अपनी 302 प्रतिक्रिया में जोड़ें: 'P3P: CP =" NOI एडीएम डीवी पीएसएआई COM NAV हमारे ओटीआर एसटीपी इंडेम डेम "' – nitwit

+3

केवल आईई पी 3 पी का समर्थन करता है। शीर्ष टिप्पणी के रूप में हेडर जोड़ने से पहले, आपको यह सुनिश्चित करना होगा कि आप जो हेडर उस हेडर के साथ कर रहे हैं वह सही हैं, या आप अपने गोपनीयता प्रथाओं के बारे में झूठा दावा करने के लिए मुकदमा दायर करने के लिए उत्तरदायी हैं। – EricLaw

0

मुझे पता नहीं है कि आपने कभी यह पता लगाया है, लेकिन सुनिश्चित करें कि आप क्लाइंट कुकीज़ सेट न करने के लिए अपने एप्लिकेशन को निर्देश दे रहे हैं। सीएफ में, एक आवेदन पैरामीटर 'setClientCookies' है, इसे गलत पर सेट करते समय यह सुनिश्चित करता है कि आप जो वर्णन कर रहे हैं वह नहीं होता है। (संयोग से, इसे 'झूठी' या 'नहीं' पर सेट करना काम नहीं करता है, जहां सीएफ सामान्य रूप से इसे झूठी पहचानता है।)

1

आईई 9 कैशिंग रीडायरेक्शन प्रतिक्रियाओं के बारे में एरिकलो के उत्तर पर विस्तार करने के लिए, इस पृष्ठ को देखें:

http://blogs.msdn.com/b/ie/archive/2010/07/14/caching-improvements-in-internet-explorer-9.aspx

इसके अलावा, एक बात नोट करने के लिए कैश की गई अनुप्रेषित के बारे में प्रतिक्रियाओं वहाँ वास्तव में है कोई आसान तरीका उन्हें बाहर खाली करने के लिए है। समाशोधन कैश और कुकीज़ उन्हें जगह में छोड़ देता है। वहाँ 2 विकल्प हैं:

  • आईई 9 निजी मोड
  • फ़िडलर उपयोग Wininet कैश को साफ़ करने के लिए (उपकरण के अंतर्गत)
2

इस पोस्ट में देर से एक छोटे से हो सकता है में जाकर, लेकिन मैं हाल ही में संभाला है Grails आवेदन के लिए यह विशेष मुद्दा। कई साल पहले, एक ही समस्या जावा वेब एप्लिकेशन में हुई थी जिसे मैंने बनाया था जहां इंटरनेट एक्सप्लोरर कुकीज़ (गोपनीयता सेटिंग्स) को अवरुद्ध कर रहा था। जावा वेब ऐप और जावास्क्रिप्ट को प्राथमिक पृष्ठ में कुकीज़ लिखने या इंटरनेट एक्सप्लोरर में आईएफआरएएम की अनुमति देने के लिए, वेब एप्लिकेशन से एक गोपनीयता नीति भेजी गई थी।माइक्रोसॉफ्ट अभी भी Platform for Privacy Preferences (P3P) नामक गोपनीयता नीति प्रारूप का समर्थन करता है। यह प्रारूप अन्य आधुनिक ब्राउज़रों में समर्थित नहीं प्रतीत होता है, लेकिन यह आईई कुकी मुद्दों को दूर करने में मदद करता है। पी 3 पी के आईई 10 समर्थन के साथ चिंताओं के बावजूद, मैंने सख्त सत्यापन के साथ निम्नलिखित पी 3 पी सेटिंग्स का सफलतापूर्वक परीक्षण किया है।

1) अपने आवेदन के लिए आवश्यक श्रेणियों की पहचान करें। अपने आवेदन के लिए, इंटरैक्टिव, नेविगेशन, और uniqueid श्रेणियों समुचित संचालन के लिए आवश्यक थे। कॉम्पैक्ट नीति कोड पी 3 पी विनिर्देश साइट

Category  Compact 
--------  ------- 
interactive => INT 
navigation => NAV 
uniqueid => UNI 

2) निर्धारित करें यदि अकेले कॉम्पैक्ट नीति काम करेंगे पर सूचीबद्ध हैं। मेरे आवेदन के लिए, कॉम्पैक्ट नीति शीर्षलेख पर्याप्त था। अगर आपको पॉलिसी फाइल की आवश्यकता है, तो कृपया यहां कुछ उदाहरण फाइलों की समीक्षा करें: http://p3pbook.com/examples.html

3) नीचे दिया गया कोड एक बहुत ही सरल उदाहरण है, लेकिन अभी भी प्रदर्शन करने के लिए चरणों को स्पष्ट करना चाहिए।

HttpServletResponse response = (HttpServletResponse) res; 

String policySettings = policyFileExists ? "policyref='" + policyFilePath + "', " : ""; 

policySettings += "CP='INT NAV UNI'"; 

response.setHeader("P3P", policySettings); 

आप निश्चित रूप से PHP और ASP.NET जैसी अन्य तकनीकों में समान कदम उठा सकते हैं। मुझे आशा है कि यह कम से कम आईई कुकी मुद्दे को हल करने के लिए सही दिशा में लोगों को इंगित करने में मदद करता है।

0

आप अपनी कुकी पर एक्सपीयर बनाम अधिकतम आयु सेटिंग देखना चाह सकते हैं। आईईएस मैक्स-एज पर विचार नहीं करेगा (शायद नए लोग करते हैं, अगर कोई एक्सपियर नहीं दिया जाता है?), लेकिन वे स्थानीय समय देखेंगे और इसे एक्सपेयर डेट से तुलना करेंगे। यदि भविष्य में स्थानीय समय भविष्य में है, या सर्वर के पास अतीत की तारीख है, तो कुकी को समाप्त होने के रूप में माना जाएगा और अगले अनुरोध पर नहीं भेजा जाएगा।

मैंने यह भी देखा है कि आईई 9 आपको डेवलपर इंटरफेस में बताएगा कि यह एक पीओएसटी करता है, यह वास्तव में 302 रीडायरेक्ट के बाद प्राप्त होता है। एक नोट के रूप में, पूरी 302 चीज थोड़ा गड़बड़ है और साइटें आपको 303 और 307 चाहिए, लेकिन वैसे भी।

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