2010-08-21 13 views
22

मैं जानता हूँ कि अगर मेरे अपने वेब पेज पर, अगर मेरे उपयोगकर्ता पर है: http://example.com/responder.php
एक ही मूल नीति - AJAX और का उपयोग कर सार्वजनिक एपीआई

: http://www.example.com/form.php

और मैं उस पृष्ठ से एक ajax अनुरोध करने के लिए बनाने के

यह वही मूल नीति के कारण विफल हो जाएगा (सबडोमेन अलग है)।

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


संपादित करें:

जैसे: क्यों इस कोड काम करता है?

$.getJSON('http://api.flickr.com/services/rest/?&;method=flickr...' 

(Referred this Community Wiki) यह Cross Origin Resource Sharing का उपयोग कर है?

धन्यवाद!

उत्तर

17

समान उत्पत्ति नीति के आसपास काम करने के लिए कुछ ज्ञात विधियां हैं। एक लोकप्रिय तकनीक "स्क्रिप्ट टैग इंजेक्शन" का उपयोग करना है जैसे कि JSONP में। चूंकि <script> टैग समान उत्पत्ति नीति द्वारा बाधित नहीं है, इसलिए किसी तृतीय-पक्ष डोमेन पर एक स्क्रिप्ट निष्पादन योग्य कोड प्रदान कर सकती है जो प्रदान किए गए कॉलबैक फ़ंक्शन के साथ इंटरैक्ट करता है। आप आगे विषय पर पढ़ने के लिए निम्न आलेख में "टिप्स और ट्रिक्स" अनुभाग की जाँच कर सकते हैं:

तुम भी बाहर की जाँच में रुचि हो सकती अन्य तकनीकों पर आगे पढ़ने के लिए निम्न स्टैक ओवरफ़्लो पद एक ही मूल नीति के आसपास काम करने के लिए:


अद्यतन: इसके अलावा अद्यतन प्रश्न:

$.getJSON() पर jQuery दस्तावेज़ से हवाला देते हुए: "कॉलबैक ="

URL स्ट्रिंग शामिल है यूआरएल में, अनुरोध को इसके बजाय JSONP के रूप में माना जाता है।

+0

यह इतना नहीं है कि तत्व को मूल उत्पत्ति नीति से मुक्त किया गया है क्योंकि जावास्क्रिप्ट के पास कच्चे डेटा को वापस नहीं किया गया है। यह तीसरे पक्ष पर निष्पादन योग्य कोड प्रदान करता है जो आपके द्वारा प्रदान किए जाने वाले फ़ंक्शन के साथ इंटरैक्ट करता है। – Quentin

+1

@ डेविड: धन्यवाद। मेरा जवाब अधिक सटीक होने के लिए अपडेट किया गया :) –

+1

आह! अरे, jQuery इन सभी चालें पृष्ठभूमि में इसे संभालती है! :) नीट! लव jQuery --- रेफरी: http://insideria.com/2009/03/what-in-the-heck-is-jsonp-and.html – DMin