Как отменить XMLHttpRequest, если время ожидания соединения? - PullRequest
1 голос
/ 14 октября 2010

У меня проблема с XMLHttpRequest. Если нет подключения к Интернету, мой запрос не истекает, и, следовательно, браузер зависает. Вот код запроса:

 var jsonData = new XMLHttpRequest();
 jsonData.open('GET', urltest, false);
 jsonData.Timeout = 100;
 jsonData.send(null);
 if(jsonData.status == 200) {
     alert(jsonData.statusText);
 }else{
     alert(jsonData.statusText);
 }

Как отменить запрос, если сервер не отвечает?

1 Ответ

0 голосов
/ 28 ноября 2016

Я внес некоторые изменения в ваш код и оставил несколько комментариев, где я внес изменения, объясняющие, что происходит.Надеюсь, это поможет!

var jsonData = new XMLHttpRequest();
jsonData.open('GET', urltest);/* I removed the false, because it kept the browser
waiting for the page to load to continue, and it didn't let it do other things
while it was still loading.*/
jsonData.Timeout = 100;
jsonData.send();
jsonData.onreadystatechange = function() {/*Each time readyState changes value,
                                            run this code.*/
    if (jsonData.readyState == 4) {/*When readyState is equal to 4,
                     the page has fully loaded.
                     Only run the code when it's 4,
                     not when it's still loading.*/
        if (jsonData.status == 200) {
            alert(jsonData.statusText);
        } else {
            alert(jsonData.statusText);
        }
        // More things to do when the page has fully loaded...
    }
}
...