2008-12-18 54 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);