HTML
<a href="#" onclick="MyObj.startup()">click me</a>
js code
var MyObj =
{
startup : function()
{
var ajax = null;
ajax = new XMLHttpRequest();
ajax.open('GET', 'http://www.nasa.gov', true);
ajax.onreadystatechange = function(evt)
{
if(ajax.readyState == 4)
{
if (ajax.status == 200)
{
window.dump(":)\n");
}
else
{
window.dump(":(\n");
}
}
}
ajax.send(null);
}
}
无论实际返回代码是什么, ajax.status
总是返回0,无论它是哪个站点。我说实际,因为ajax.statusText
返回正确的值,例如OK或重定向......
ajax.readyState
也返回正确的值,最后返回4。
答案 0 :(得分:4)
您可以通过设置php代理(xampp服务器并为您要获取的URL传递查询字符串)在本地环境中轻松解决此问题。让你的php代理wget url并回显其内容。这样,您的本地html文件(当被视为http://localhost/your.html时)可以整天从域中发送ajax请求。只是不要指望内容可以像在该域中本地一样工作。
答案 1 :(得分:3)
您的网站是http://www.nasa.gov/的一部分吗?否则,XMLHttpRequest将因Same Origin Policy而失败。
此外,如果页面作为非HTTP请求提供,status
可以为0.请参阅https://developer.mozilla.org/En/Using_XMLHttpRequest#section_3。