Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problem: XMLHttpRequest - handle server connection lost

How do I handle the scenario where I making a synchronous request to the server using XMLHttpRequest and the server is not available?

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

Right now this scenario results into a JavaScript error: "The system cannot locate the resource specified"

like image 719
coder_bro Avatar asked Dec 18 '08 08:12

coder_bro


3 Answers

Ok I resolved it by using try...catch around xmlhttprequest.send

:

xmlhttp.open("POST","Page.aspx",false);              
       try
       {
       xmlhttp.send(null);
       }
       catch(e)
       {
            alert('there was a problem communicating with the server');
       }       
like image 153
coder_bro Avatar answered Nov 12 '22 23:11

coder_bro


Try the timeout property.

xmlHTTP.TimeOut= 2000 
like image 2
fasih.rana Avatar answered Nov 12 '22 21:11

fasih.rana


You don't check for properly returned status. By the code you gave you are doing a GET request. To properly check the status of your request, you must create an event handler for the onreadystatechange event and then inside it check if the readyState property is equal 4 and then inside the method if the status is 200.

You can find a detailed explanation here :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);



like image 1
Nikola Stjelja Avatar answered Nov 12 '22 21:11

Nikola Stjelja