通过XMLHttpRequest获取HTML源代码[JavaScript]

时间:2018-10-25 17:52:02

标签: javascript xmlhttprequest xmlhttprequest-states

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>

1 个答案:

答案 0 :(得分:0)

我在JSFiddle中运行了您的代码,但收到一条错误消息,指出这是CORS问题。您可以在所选的浏览器中通过opening the Javascript console查看这些错误消息。

Error message as seen in the Javascript console

当您没有足够的权限访问不同域之间的资源时,就会出现CORS(跨域资源共享)问题。每个Web服务器都设置了确定访问这些文件的规则的策略,并且Stack Overflow的安全设置被设置为禁止对该站点的这种访问。您可以read more about CORS here