12

外部の Web サイトから 1 つのページを読み込むことはできますか?

単一のページを表示しようとしていますが、機能していないようです

$("#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);
   }
 });

助けていただければ幸いです

4

2 に答える 2

23

AJAX (セキュリティ上の理由から) では、同じドメインにないページからコンテンツを取得できないため、クロス ドメイン ポリシーの問題が発生しています。

それを取り除き、タスクを達成するには、次の行の PHP だけで
呼び出すことができる PHP ファイルが必要です。grabber.php

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

あなたのhtmlの中よりも(またはどんなファイルでも好きです:)

<!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 は単純な GET リクエストをgrabber.phpページに送信しています。
  • grabber.php目的のコンテンツをエコーし​​ます
  • これで、コンテンツはあなたの (サーバー) ドメインにあります!
  • そしてAJAXはあなたに喜んでサービスを提供します:)
于 2013-02-21T10:17:34.113 に答える
1

別のドメインでページを読み込もうとしていますか?

はいの場合、途中でクロスドメイン ポリシーを取得したようです...

于 2013-02-21T10:16:05.143 に答える