2008-12-18 67 views
3

如何處理使用XMLHttpRequest向服務器發出同步請求並且服務器不可用的場景?問題:XMLHttpRequest - 處理服務器連接丟失

xmlhttp.open("POST","Page.aspx",false); 
xmlhttp.send(null); 

眼下這種情況下會導致成JavaScript錯誤: 「系統找不到指定的資源」

+0

http://geekswithblogs.net/lorint/archive/2006/03/07/71625.aspx 繼承人做它一個請求的教程。 – 2008-12-18 09:20:20

回答

1

好,我解決它使用的try ... catch周圍xmlhttprequest.send

xmlhttp.open("POST","Page.aspx",false);    
     try 
     { 
     xmlhttp.send(null); 
     } 
     catch(e) 
     { 
      alert('there was a problem communicating with the server'); 
     }  
2

嘗試超時屬性。

xmlHTTP.TimeOut= 2000 
+0

我認爲這隻適用於異步請求,以防發生同步請求。 xmllhttprequest.send會阻塞。我們將不得不使用try..catch,如下所示: – Ngm 2008-12-18 11:43:03

1

你不檢查正常返回的狀態。通過你給你的代碼做了一個GET請求。 要正確檢查請求的狀態,你必須爲onreadystatechange事件創建事件處理程序,然後它裏面檢查readyState屬性等於4,然後在方法內部如果狀態是200

你可以找到詳細的解釋在這裏:Ajax Tutorial by Mozilla


xmlhttp.onreadystatechange=function() 

xmlhttp.open("GET","Page.aspx",false); 
{ 
    if (xmlhttp.readyState==4) 
    { 
    if (xmlhttp.status==200) 
    { 
     //Ajax handling logic 
    } 
    } 
} 
xmlhttp.send(null);