2011-11-18 17 views

उत्तर

10

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

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

एक या दूसरे का उपयोग करने के कारण, अब स्पष्ट होना चाहिए। सीओआरएस आपको किसी अन्य मूल से डेटा का अनुरोध करने की अनुमति देता है जबकि मुख्य विंडो के बीच संदेश गुजर रहा है और आईफ्रेम का उपयोग तब किया जाता है जब आप आईफ्रेम के अंदर मौजूद ऐप के साथ संवाद करना चाहते हैं लेकिन एक ही उत्पत्ति में नहीं है।

एक व्यावहारिक उदाहरण:

1.You एक iframe एक यूट्यूब खिलाड़ी है कि है।

2. आप यूट्यूब डेटा एपीआई (सीओआरएस, जेएसओएनपी, एक्सएचआर या जो कुछ भी हो सकता है) से खेलने के लिए कुछ वीडियो का अनुरोध करते हैं।

3.You अब iframe पर एक क्रॉस-डोमेन संदेश देना वीडियो आपको चरण # में अनुरोध के किसी भी खेल रहे 2

1

सबसे पहले आप जानते हैं कि CORS निम्न ब्राउज़रों द्वारा समर्थित है होना चाहिए शुरू करने के लिए: इंटरनेट एक्सप्लोरर 8+, फ़ायरफ़ॉक्स 3.5+, सफारी 4+, और क्रोम। कृपया ध्यान दें कि फ़ायरफ़ॉक्स और सफारी के आई 7 और पुराने संस्करण इसका समर्थन नहीं करते हैं। लेकिन ईवेंट आईई 8 में कुछ सीमाएं हैं - यह सर्वर पर भेजे जाने वाले प्रमाण-पत्र और "प्रीफलाइट" अनुरोधों का समर्थन नहीं करती है। इसके अतिरिक्त, आपका सर्वर सीओआरएस अनुरोधों के लिए तैयार होना चाहिए, यानी सर्वर पर कुछ अतिरिक्त काम भी किया जाना चाहिए।

जेएसओएनपी या आईफ्रेम का उपयोग कर क्रॉस-डोमेन मैसेजिंग ब्राउज़र समर्थन के मामले में अधिक सार्वभौमिक है और कभी-कभी अतिरिक्त सर्वर-साइड काम की आवश्यकता नहीं होती है।

+0

पुराने ब्राउज़र के लिए आप CORS के लिए फ़्लैश का उपयोग कर सकते हैं, उदाहरण के लिए: http://flxhr.flensed.com/। 'postMessage' हालांकि एक आधुनिक ब्राउज़र की आवश्यकता है। – Esailija

+1

हमें अर्हता प्राप्त करनी चाहिए कि एक्सपोरेर 8/9 में सीओआरएस समर्थन अन्य ब्राउज़रों की तुलना में गैर मानक है। विशेष रूप से jQuery मानक कोर का समर्थन करता है लेकिन एक्सप्लोरर के बराबर नहीं। एक्सप्लोरर 10 मानक सीओआरएस का समर्थन करता है हालांकि मुझे बताया गया है। – hippietrail

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