我尝试了以下代码,但它返回了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);
};
答案 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