मैं कैनवास अनुप्रयोगों के बारे में फेसबुक के दस्तावेज़ीकरण को पढ़ रहा था और मैं एक उदाहरण आवेदन में आया: http://developers.facebook.com/docs/samples/canvas। जैसा कि मैंने उनके उदाहरण के माध्यम से पढ़ा, हालांकि, मैं आईफ्रेम एप्लिकेशन में कुकीज़ के उपयोग के बारे में बहुत उलझन में आया।फेसबुक कैनवास पृष्ठों पर iFrames के लिए क्रॉस-डोमेन कुकीज़ कैसे सेट करता है?
एक छोटी सी पृष्ठभूमि की कहानी ...
मैं पहले से ही साथ एम्बेड विजेट्स के लिए iframes (फेसबुक से संबंधित नहीं) का उपयोग कर के साथ चारों ओर खेला था और मुझे पता चला कुछ ब्राउज़रों (क्रोम, सफारी, आदि) सख्त कुकी नीतियां होती हैं और iframes में सेट क्रॉस-डोमेन कुकीज को सेट करने की अनुमति न दें (दूसरी तरफ फ़ायरफ़ॉक्स, iframes को iframes में क्रॉस-डोमेन कुकीज़ सेट करने की अनुमति देता है)। उदाहरण के लिए, अगर foo.com के पास src="http://bar.com/widget"
के साथ आईफ़्रेम है, तो iframe विजेट bar.com के लिए कोई भी कुकी सेट करने में सक्षम नहीं होगा और इसलिए iframe के भीतर स्थायी स्थिति में परेशानी होगी: bar.com प्रत्येक अनुरोध (AJAX अनुरोध सहित) की व्याख्या करेगा। एक स्थापित सत्र के बिना विजेट से एक ताजा अनुरोध के रूप में। मैं संघर्ष कर रहा था, और इसके बजाय foo.com के लिए कुकीज़ सेट करने के लिए जेएसओएनपी और जावास्क्रिप्ट का उपयोग करके इस तरह से एक रास्ता मिला ...
... और इसलिए?
ठीक है, मैं उदाहरण कैनवास आईफ्रेम फेसबुक एप्लिकेशन देख रहा था और मैंने देखा कि उनका एप्लिकेशन (runwithfriends.appspot.com पर होस्ट किया गया) एक कुकी, u
सेट करने में सक्षम है, वर्तमान उपयोगकर्ता की आईडी के साथ कुछ अन्य runwithfriends.appspot.com डोमेन के लिए पैरामीटर। यह इस कुकी को हर अनुरोध के साथ भेजता है ... और यह क्रोम और फ़ायरफ़ॉक्स दोनों में काम करता है! WTF? क्रोम पर क्रॉस-डोमेन कुकी प्रतिबंधों के आसपास फेसबुक कैसे मिलता है?
(मैं पहले से ही अब इस सवाल का जवाब पता है, लेकिन मैंने सोचा था कि यह सहायक किसी को भी एक ही बात यह पता लगाने के लिए संघर्ष कर के लिए हो सकता है -। मैं नीचे इस सवाल का जवाब पोस्ट करेंगे)
अद्यतन: कुछ ब्राउज़रों के नवीनतम संस्करण (ओएस एक्स पर सफारी v6.x +, आईओएस 6+ पर सफारी, और मैं जल्द ही क्रोम और एफएफ मानता हूं) पोस्ट-टू-आईफ्रेम अनुरोधों पर भी क्रॉस-डोमेन कुकीज़ की सेटिंग करने की अनुमति न दें। –