所以我有www.siteA.com和www.siteB.com。站点A是我的主站点,站点B是我存储一些网页的主要是html页面。我想将网站B的网页加载到网站A的页面中。到目前为止,我已经搜索了如何执行此操作并找到了这个Insert external page html into a page 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>
知道为什么它不会对我有用吗?或者是否可以从其他域加载外部页面?
答案 0 :(得分:1)
AJAX受Same-origin Policy的约束。它无法访问与当前域不同的域中的内容。
由于您已将此问题标记为PHP,我假设您正在使用它,并且您可以从该页面检索内容,如下所示:
<?php
$contents = file_get_contents('http://www.siteB.com/file.html');
echo $contents;
?>
然后,您可以将XMLHttpRequest重定向到该PHP文件,该文件将为您检索内容。
答案 1 :(得分:0)
JS无法在这样的网站之间进行通信。由于您标记了PHP,因此可以使用PHP。
document.getElementById('here').innerHTML=JSON.parse(<?php echo json_encode(file_get_contents('http://www.siteB.com/file.html')); ?>);
答案 2 :(得分:-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>