XMLHttpRequest适用于第一个URL,但不适用于第二个URL。我认为此功能不适用于动态网页。我也尝试过ajax获取html源,但它也不起作用。我该如何更改此代码以使其适用于第二个URL?
<script language="Javascript" type="text/javascript">
function getSource(url)
{
var req = new XMLHttpRequest();
req.open(
"GET",
url,
true);
req.onreadystatechange = statusListener;
req.send(null);
function statusListener()
{
if (req.readyState == 4)
{
if (req.status == 200)
{
var doc=req.responseText;
alert(doc);
}
}
}
}
url1 = "https://pages.github.com/";
url2 = "https://stackoverflow.com/";
// This code WORKS
getSource(url1);
// This code DON'T WORK
getSource(url2);
</script>
答案 0 :(得分:0)
我在JSFiddle中运行了您的代码,但收到一条错误消息,指出这是CORS问题。您可以在所选的浏览器中通过opening the Javascript console查看这些错误消息。
当您没有足够的权限访问不同域之间的资源时,就会出现CORS(跨域资源共享)问题。每个Web服务器都设置了确定访问这些文件的规则的策略,并且Stack Overflow的安全设置被设置为禁止对该站点的这种访问。您可以read more about CORS here。