Не отсылаются Ajax запросы, если сервер offline
От: Посторонним В. Беларусь  
Дата: 19.08.16 12:30
Оценка:
Задал вопрос на stackoverflow, но не смогли ответить. Потому обратился к КЫВТу.

У меня есть страница, через которую пользователь может перегрузить сервер. По нажатию кнопки "reboot" сервер идет в ребут, а пользователю показывается страница с "rebooting please wait...".

Я хочу, чтобы после перезагрузки страница "rebooting please wait..." сменилась на главную страницу сервера. Ниже моя попытка это сделать.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Rebooting, please wait...</title>

    <script type="text/javascript">
     function checkPageReady() {
        var request = new XMLHttpRequest();
        request.open('POST', '/', true);
        request.onreadystatechange = function() {
          if (request.readyState == 4 && request.status == 200)
              window.location = '/';
        };
        request.send(null);
     }
     function checkPageReadyInLoop() {
        setInterval(checkPageReady, 1000);
     }
    </script>

</head>
<body onload="setTimeout(checkPageReadyInLoop, 10000);">
    Rebooting, please wait...
</body>
</html>


Стриница ждет 10 секунд, после чего раз в секунду начинает пинговать сервер Ajax запросы. Как только сервер доступен, идет редирект на главную страницу
Наблюдая за процессом через Chrome Developer Tools я вижу, что Ajax запросы не отсылаются совсем!
Если же я делаю фейк-ребут (то есть сервер на самом деле не перегружается), то все начинает работать.

Кто что посоветует?
ajax offline
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.