0

所以我有 www.siteA.com 和 www.siteB.com。站点 A 是我的主要站点,站点 B 是我存储一些网页的地方,主要是 html 页面。我想将站点 B 中的网页加载到站点 A 的页面中。到目前为止,我已经搜索了有关如何执行此操作的内容,并找到了这个将外部页面 html 插入页面 html 的页面,但它对我不起作用。这是我从上面的链接中使用的代码:

<!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 受同源策略的约束。它无法访问与其当前域不同的域中的内容。

由于您已将此问题标记为 PHP,因此我假设您正在使用它,并且您可以从该页面检索内容,如下所示:

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

然后,您可以将 XMLHttpRequest 重定向到该 PHP 文件,该文件将为您检索内容。

于 2013-09-25T16:09:35.160 回答
0

JS 无法在这样的站点之间进行通信。由于您标记了 PHP,因此您可以使用 PHP。

document.getElementById('here').innerHTML=JSON.parse(<?php echo json_encode(file_get_contents('http://www.siteB.com/file.html')); ?>);
于 2013-09-25T16:07:06.913 回答
-2

如果您想显示网站的另一个页面,为什么不使用 iframe?

http://www.w3schools.com/tags/tag_iframe.asp

<iframe src="http://www.w3schools.com">
  <p>Your browser does not support iframes.</p>
</iframe>
于 2013-09-25T16:07:55.233 回答