2013-02-21 11 views
11

外部のWebサイトから1ページを読み込むことはできますか?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/をwiki/Cross-origin_resource_sharing and here http://msdn.microsoft.com/en-us/library/windows/apps/hh767443.aspx – Bakudan

+0

RSSフィードが必要なだけで、Googleに頼るのに気にしないのであれば[ jquery-feeds](https://github.com/camagu/jquery-feeds/)を参照してください。 – guaka

答えて

19

あなたは(セキュリティ上の理由から)クロスドメインポリシー問題の原因AJAXに実行しているあなたをさせません同じドメインに座っていないページからコンテンツを取得します。それを取り除くと、あなたのタスクを達成得るために


あなたはPHPのちょうどこのラインでgrabber.phpを呼び出すことができますPHPファイルを必要とする:あなたのHTML(または任意のファイルだけで行う内部より

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

をlike :)

<!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は今、コンテンツがあなたの(サーバー)ドメイン上で所望のコンテンツ
  • をエコー、grabber.phpページへの単純なGETリクエストを送信しています!
  • とAJAXはあなたを提供させていただきます:)
+1

これは素晴らしいです。しかし1つの問題。私は多くのサイトが一度それを引っ張って絶対パスを失うことに気付きます。あなたはページを引っ張ってそれをそのまま保つためのヒントを知っていますか? – andehlu

+1

@andehluロードされた内容をiframeに追加することができます。これは、パスを順番に保持する必要があります。 –

+0

@WessamElMahdyあなたが読み込んだページを賞賛したい場合や、ロードされた要素で実際に何かをしたいのであれば、... –

0

をいただければ幸いあなたが別のドメイン上のページをロードしようとしていますか?はい、あなたがあなたの方法上のクロスドメインポリシーを持っているようだ場合

...

関連する問題