2011-03-16 9 views
7

.load() (या कोई jQuery AJAX फ़ंक्शंस) के साथ मेरे डोमेन पर किसी भी स्थान से डेटा का अनुरोध करना ठीक काम करता है।आप .load() के साथ किसी अन्य डोमेन से सामग्री कैसे प्राप्त करते हैं?

किसी भिन्न डोमेन में किसी URL तक पहुंचने का प्रयास करने पर काम नहीं करता है। आप इसे कैसे करते हो? दूसरा डोमेन भी मेरा होता है।

मैंने एक चाल के बारे में पढ़ा है जो आप PHP के साथ कर सकते हैं और सामग्री प्राप्त करने वाली प्रॉक्सी बनाते हैं, फिर आप अपने सर्वर पर उस PHP स्थान पर jQuery के AJAX फ़ंक्शंस का उपयोग करते हैं, लेकिन यह अभी भी आपके सर्वर पर jQuery AJAX का उपयोग कर रहा है ताकि वह अभी भी गिनती नहीं है

क्या कोई अच्छी प्लगइन है?

संपादित करें: मुझे jQuery के लिए एक बहुत अच्छी प्लगइन मिली है जो आपको किसी भी jQuery फ़ंक्शन का उपयोग करके अन्य पृष्ठों से सामग्री का अनुरोध करने की अनुमति देता है, वैसे ही जैसे आप अपने डोमेन में एक सामान्य AJAX अनुरोध करेंगे।

पोस्ट: http://james.padolsey.com/javascript/cross-domain-requests-with-jquery/

प्लगइन: https://github.com/jamespadolsey/jQuery-Plugins/tree/master/cross-domain-ajax/

उत्तर

10

यह क्रॉस-डोमेन नीति है, जो, प्रकार में, एक क्लाइंट-साइड स्क्रिप्ट का उपयोग कर इसका मतलब है कि की वजह से है (उर्फ जावास्क्रिप्ट ...) आप दूसरे डोमेन से डेटा का अनुरोध नहीं कर सकते हैं। हमारे लिए भाग्यशाली, यह प्रतिबंध अधिकांश सर्वर-साइड स्क्रिप्ट में मौजूद नहीं है।

तो ...

जावास्क्रिप्ट: में "google-html.php"

$("#google-html").load("google-html.php"); 

पीएचपी:

echo file_get_contents("http://www.google.com/"); 

काम करेगा।

+0

जब तक इस पर कोई प्रतिबंध नहीं है, और कई साझा होस्टिंग सेवाएं इसे अक्षम करती हैं। यदि यह आपके लिए मामला है, तो आप कर्ल http://curl.haxx.se/ –

+0

सच का उपयोग करना चाहेंगे, मुझे लगता है कि बेहतर भुगतान होस्टिंग सेवाओं में से एक का उपयोग कर रहा था। – mattsven

+0

बेहतर भुगतान होस्टिंग सेवा 'allow_url_fopen' अक्षम करें। यह सुरक्षा के लिए बेहतर है। –

3

विभिन्न डोमेन = अलग-अलग सर्वर जहां तक ​​आपके ब्राउज़र का संबंध है। या तो अनुरोध करने के लिए JSONP का उपयोग करें या प्रॉक्सी को PHP का उपयोग करें। क्रॉस-डोमेन JSONP अनुरोध करने के लिए आप jQuery.ajax() का उपयोग कर सकते हैं।

3

याहू की वाईक्यूएल सेवा का उपयोग करना एक वास्तव में आसान कामकाज है, जो किसी बाहरी साइट से सामग्री पुनर्प्राप्त कर सकता है।

मैंने इस उदाहरण के बाद कुछ साइटों पर सफलतापूर्वक यह किया है जो केवल जावास्क्रिप्ट और वाईक्यूएल का उपयोग करता है। http://icant.co.uk/articles/crossdomain-ajax-with-jquery/using-yql.html

यह उदाहरण एक ब्लॉग पोस्ट का हिस्सा है जो कुछ अन्य समाधानों को भी रेखांकित करता है। http://www.wait-till-i.com/2010/01/10/loading-external-content-with-ajax-using-jquery-and-yql/

+0

धन्यवाद, मेरे ईडीआईटी में संदर्भित प्लगइन वास्तव में इसका उपयोग करता है: डी – trusktr

1

मुझे एक और समाधान पता है जो काम करता है। यह आवश्यक नहीं है कि आप JQuery को बदल दें। यह आवश्यक है कि आप अपने डोमेन में एक एएसपी पेज खड़े हो सकें। मैंने स्वयं इस विधि का उपयोग किया है।

1) इस पेज http://www.itbsllc.com/zip/proxyscripts.html

2 पर एक तरह एक proxy.asp पेज के द्वारा) फिर आप एक JQuery लोड समारोह कर सकते हैं और यह proxy.asp फ़ीड? Url = ....... उस लिंक पर एक उदाहरण है कि इसे वास्तव में कैसे प्रारूपित किया जाए। वैसे भी, आप विदेशी पेज यूआरएल और अपने वांछित माइम प्रकार को अपने स्थानीय proxy.asp पृष्ठ पर चर प्राप्त करने के रूप में फ़ीड करते हैं। मैंने उपयोग किए गए दो माइम प्रकार टेक्स्ट/एचटीएमएल और छवि/जेपीजी हैं।

नोट, यदि आपके लक्षित पृष्ठ में संबंधित स्रोत लिंक वाली छवियां हैं जो शायद लोड नहीं होंगी। मुझे उम्मीद है कि यह मदद करता है।

+0

उत्तर के लिए धन्यवाद! – trusktr

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

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