2013-02-21 44 views
11

क्या बाहरी वेबसाइट से एक पृष्ठ लोड करना संभव है?jQuery लोड बाहरी साइट पेज

मैं एक ही पृष्ठ दिखाने के लिए कोशिश कर रहा हूँ, लेकिन यह काम करने के लिए

$("#response").load("http://domain.com", function(response, status, xhr) { 
    if (status == "error") { 
     var msg = "Sorry but there was an error: "; 
     alert(msg + xhr.status + " " + xhr.statusText); 
    } 
}); 

सहायता होगा बहुत

+1

हाँ, यह संभव है, लेकिन आप PHP :) –

+0

की 1 लाइन की आवश्यकता होगी यहाँ एक नजर डालें सेवा करने के लिए खुश है - http://en.wikipedia.org/ विकी/क्रॉस-मूल_resource_sharing और यहां http://msdn.microsoft.com/en-us/library/windows/apps/hh767443.aspx – Bakudan

+0

यदि आपको केवल आरएसएस फ़ीड की आवश्यकता है और आपको Google पर भरोसा नहीं है तो आप [ jQuery-फ़ीड] (https://github.com/camagu/jquery-feeds/)। – guaka

उत्तर

19

आप एक क्रॉस डोमेन नीति मुद्दा कारण AJAX (सुरक्षा कारणों से) में चला रहे हैं आप नहीं दूँगी उस पृष्ठ से सामग्री लें जो एक ही डोमेन पर नहीं बैठती है।

यह से छुटकारा और अपने कार्य को पूरा करने के लिए: (

<?php echo file_get_contents($_GET['url']); ?> 

अपने html अंदर से या जो कुछ भी फ़ाइल सिर्फ कार्य करें:
आप एक PHP फ़ाइल की जरूरत है तुम सिर्फ पीएचपी की इस पंक्ति के साथ grabber.php कॉल कर सकते हैं जैसे :)

<!DOCTYPE html> 
<html> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
    <meta charset=utf-8 /> 
    <title>test</title> 
</head> 
<body> 

    <div id="response"></div> 

</body> 

<script> 
$(function(){ 
    var contentURI= 'http://domain.com #element'; // URL TO GRAB + # of any desired element // if needed :) 
    $('#response').load('grabber.php?url='+ contentURI); 
}); 
</script> 

</html> 

यह क्यों काम करता है?

  • अब, AJAX grabber.php पेज के लिए एक सरल GET अनुरोध भेज रहा है,
  • grabber.php गूँज वांछित सामग्री
  • अब सामग्री अपने (सर्वर) डोमेन पर है!
  • और AJAX आप :)
+1

यह बहुत अच्छा है। हालांकि एक मुद्दा। मुझे लगता है कि कई साइटों ने इसे खींचने के बाद अपने पूर्ण पथ खो दिए हैं। क्या आप पेज खींचने और इसे बरकरार रखने के लिए कोई सुझाव जानते हैं? – andehlu

+1

@andehlu आप लोड की गई सामग्री को आईफ्रेम में जोड़ सकते हैं, इसे पथ को क्रम में रखना चाहिए। –

+0

@WessamElMahdy depents अगर आप सिर्फ लोड किए गए पृष्ठ की प्रशंसा करना चाहते हैं या आप वास्तव में लोड किए गए तत्वों के साथ कुछ सामान करना चाहते हैं .... –

0

सराहना पाने के लिए नहीं कर पा रहे आप एक अलग डोमेन के पृष्ठ लोड करने की कोशिश कर रहे हैं?

यदि हाँ, तो ऐसा लगता है कि आप अपने रास्ते पर एक क्रॉस-डोमेन नीति मिला ...