2012-10-18 19 views
8

मुझे आईफ्रेम में कुकीज़ सेट करने में कोई समस्या है (जो किसी अन्य डोमेन से साइट लोड करता है)।
मेरी साइट X.COM पर मैं लोड <iframe src='Y.COM'>iframe सफारी में क्रॉस-डोमेन कुकीज़

Y.COM कुकी सेट करने की कोशिश करता है, लेकिन सफारी ब्लॉक वे, इस साइट से पहले का दौरा नहीं किया था के रूप में। तो वाई.कॉम लोड हो रहा है क्योंकि यह कुकीज़ के बिना काम नहीं कर सकता है। क्या इस मुद्दे को हल करने का कोई तरीका है?

पीएस मैं वाई.कॉम पर किसी भी डेटा को संशोधित नहीं कर सकता।

पीएसएस इसके अलावा हम सफारी की सेटिंग्स को संशोधित कर सकते हैं - "Accept cookies" = "Always", लेकिन यह मेरे लिए कोई समाधान नहीं है - यह हर उपयोगकर्ता को ऐसा करने के लिए असंभव प्रतीत होता है ..

+0

मुझे लगता है कि इसे अवरुद्ध करने का बिंदु यह है कि यह काम नहीं करना चाहिए। वर्कअराउंड बनाना उपयोगकर्ताओं के विश्वास का उल्लंघन करेगा। –

+0

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

+1

@ जेम्समोहलर, मुझे विश्वास नहीं है कि वह कह रहा है कि एक्स.कॉम * वाई.कॉम को * कुकीज़ भेजता है, बस वाई.कॉम को कुकीज़ को काम करने की आवश्यकता होती है, और जब आईफ्रेम में लोड किया जाता है तो यह उन्हें सेट करने में असमर्थ है। –

उत्तर

4

मैंने एक समान समस्या का प्रयोग किया। एक वेब "पैरेंट" पृष्ठ मेरी "बच्चे" वेबसाइट को एक jquery fancybox i-frame cross-domain में खोलता है। एक्सप्लोरर, क्रोम, फ़ायरफ़ॉक्स, ओपेरा और मैक पर सफारी (5.8.1) के साथ भी कोई समस्या नहीं है। लेकिन आईफोन, आईपैड और मिनी आईपैड के साथ, आई-फ्रेम में सत्र खो गया है।

इसका मतलब यह है कि आई-फ्रेम (वेब ​​साइट एएसपीएक्स में है) में किसी तत्व पर प्रत्येक क्लिक पर एक नया सत्र शुरू हुआ।

जब जनक वेबसाइट शुरू, यह एक पेज बच्चा साइट में सीधे कॉल (एक i-frame में नहीं):

हम एक बहुत ही सरल तरीके से समस्या का समाधान। इस पृष्ठ में मैंने बस एक सत्र चर सेट किया है और मैं मूल वेबसाइट पर रीडायरेक्ट करता हूं। अब जब बच्चा वेबसाइट आईफ्रेम में खुलती है, तो सत्र रखा जाता है।

+0

एक आकर्षण की तरह काम करता है। मैंने अपने iframed पृष्ठ में एक लिंक प्रदान किया, जैसे ''। फिर तुरंत जेएस के साथ क्लिक करें: '$ ('ए') [0] .click()'। फिर मेरे सर्वर '/ path/to/redirect_with_session' पर रूट बस सत्र सत्र' सत्र ['_ ready'] = true' सेट करता है, फिर वापस 'पैराम्स [: to]' पर रीडायरेक्ट करता है। फिर मैं यह तय कर सकता हूं कि यह रीडायरेक्ट प्रवाह केवल तभी किया जाए जब यह सफारी हो और सत्र पहले ही शुरू नहीं हुआ है। – colllin