0

したがって、www.siteA.com と www.siteB.com があります。サイト A は私のメイン サイトであり、サイト B はいくつかの Web ページ (主に HTML ページ) を保存する場所です。サイトBからサイトAのページにWebページをロードしたい. 上記のリンクから使用したコードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
<script>
function createRequestObject() 
{
   var obj;
   var browser = navigator.appName;
   if(browser == "Microsoft Internet Explorer"){
      obj = new ActiveXObject("Microsoft.XMLHTTP");
   }else{
      obj = new XMLHttpRequest();
   }
   return obj;
}

function sendReq(req) 
{    
   http.open('get', req);
   http.onreadystatechange = handleResponse;
   http.send(null);
}

function handleResponse() 
{    
   if (http.readyState == 4)
   {
      var response = http.responseText;
      document.getElementById('here').innerHTML=response;
   }
}

 sendReq('http://www.siteB.com/file.html');
 </script>
 </head>

 <body >
     <div id="here"></div>
 </body>
 </html>

www.siteB.com/file.htmlファイルにはこれのみが含まれています。

<!DOCTYPE html>
<html>
<head>
</head>

 <body >
     <h1>hello world!</h1>
     <p><img src="http://www.siteB.com/img.jpg"/></p>
 </body>
 </html>

なぜそれが私にうまくいかないのですか?または、別のドメインから外部ページをロードすることは可能ですか?

4

3 に答える 3

1

AJAX はSame-origin Policyの対象となります。現在のドメインとは異なるドメインのコンテンツにはアクセスできません。

この質問に PHP のタグを付けたので、それを使用していると思います。次のようにそのページからコンテンツを取得できます。

<?php
$contents = file_get_contents('http://www.siteB.com/file.html');
echo $contents;
?>

次に、XMLHttpRequest をその PHP ファイルにリダイレクトすると、コンテンツが取得されます。

于 2013-09-25T16:09:35.160 に答える