У меня есть код Javascript JQuery, который выполняет вызов Ajax на сервер каждые 5 минут, чтобы поддерживать сеанс сервера и сохранять пользователя в системе. Я использую $.ajax()
метод в JQuery. Кажется, у этой функции есть свойство error, которое я пытаюсь использовать в случае, если интернет-соединение пользователя прерывается, чтобы скрипт KeepAlive продолжал работать. Я использую следующий код:
var keepAliveTimeout = 1000 * 10;
function keepSessionAlive()
{
$.ajax(
{
type: 'GET',
url: 'http://www.mywebapp.com/keepAlive',
success: function(data)
{
alert('Success');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert('Failure');
setTimeout(function()
{
keepSessionAlive();
}, keepAliveTimeout);
}
});
}
Когда я запускаю его, я получаю всплывающее окно «Успешно» на экране в окне предупреждения каждые 10 секунд, и это нормально. Однако, как только я отсоединяю сетевой кабель, я ничего не получаю, я ожидал, что функция ошибки будет вызвана и увидеть окно предупреждения «Сбой», но ничего не происходит.
Правильно ли я предполагаю, что функция 'error' предназначена только для кодов состояния, отличных от 200, возвращаемых с сервера? Есть ли способ обнаружить проблемы с сетевым подключением при выполнении вызова Ajax?