5

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"

1

3 Answers 3

3

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');
       }       
Sign up to request clarification or add additional context in comments.

Comments

2

Try the timeout property.

xmlHTTP.TimeOut= 2000 

1 Comment

I think this will only work for asynchronous requests, in case of synchronous requests. xmllhttprequest.send will block. We will have to use try..catch as pointed out below:
1

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);



Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.