如何使用Javascript从Http Url获取页面内容

时间:2015-08-12 12:04:55

标签: javascript

我尝试了以下代码,但它返回了null数据..请帮助我如何使用javascript从url获取数据

function makeHttpObject() {
    try { return new XMLHttpRequest(); }
    catch (error) { }
    try { return new ActiveXObject("Msxml2.XMLHTTP"); }
    catch (error) { }
    try { return new ActiveXObject("Microsoft.XMLHTTP"); }
    catch (error) { }

    throw new Error("Could not create HTTP request object.");
}

var request = makeHttpObject();
request.open("GET", "Http URL", true);


var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", "Http URL", true );
    xmlHttp.send();
   xmlHttp.responseText;


request.send();
request.onreadystatechange = function() {
    if (request.readyState == 4)
        alert(request.responseText);
};

2 个答案:

答案 0 :(得分:0)

确保您的浏览器的JavaScript控制台已打开。在大多数浏览器中,可以使用F12键打开它。它会告诉您您尝试运行的代码是否违反了浏览器的CORS策略。 CORS代表跨源资源共享,由于在大多数浏览器中默认情况下通常都有严格的策略,因此您无法向提出请求的域下的其他网站发出请求。

例如,如果我在www.example.com上运行代码并想要向www.example2.com发送AJAX请求,那么它将无效,因为www.example.com是原始域,出于安全考虑,无法向www.example2.com提出申请 - 他们是不同的域名。

您可以通过禁用浏览器的安全性来解决此问题(此处为how to do it in Chrome)。但请注意,您的网站访问者将启用安全性,因此请不要设计您的代码以要求暴露此主要安全漏洞。

答案 1 :(得分:0)

您将遇到CORS问题。简而言之,CORS是一种防止恶意javascript导致客户端攻击的机制。

如果可以,我建议enabling CORS server side。这意味着您可以访问要从中检索数据的服务器的后端。

如果您无法访问要从中检索数据的服务器,则需要在其他级别执行此操作。例如,在PHP中,基本方法是cURL