2010-05-02 92 views
3

HTMLXMLHttpRequest.status总是返回0

<a href="#" onclick="MyObj.startup()">click me</a> 

js代码

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在最后。

回答

4

你可以在本地环境中通过设置一个php代理(xampp一个服务器并为你想要的url传递一个查询字符串)来轻松解决这个问题。让你的PHP代理wget url并回应它的内容。这样,您的本地html文件(当被视为http://localhost/your.html时)可以将Ajax请求整天发送出去。只是不要指望这些内容像在本地域一样工作。