2010-05-02 89 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請求整天發送出去。只是不要指望這些內容像在本地域一樣工作。