0

XMLHttpRequest 适用于第一个 url,但不适用于第二个 url。我认为此功能不适用于动态网页。我也尝试 ajax 获取 html 源,但它也不起作用。我该怎么办?如何我可以更改此代码以适用于第二个网址吗?

<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>
4

1 回答 1

0

我在 JSFiddle 中运行了您的代码,并收到一条错误消息,指出这是一个 CORS 问题。您可以通过在您选择的浏览器中打开 Javascript 控制台来查看这些错误消息。

Javascript 控制台中显示的错误消息

当您没有足够的权限访问不同域之间的资源时,就会出现 CORS(跨域资源共享)问题。每个 Web 服务器都设置了策略来确定访问这些文件的规则,并且 Stack Overflow 的安全设置被设置为禁止对其站点进行这种访问。您可以在此处阅读有关 CORS 的更多信息

于 2018-10-25T18:04:45.757 回答