У мене є Javascript-код JQuery, який робить виклик Ajax на сервер кожні 5 хвилин, він підтримує сеанс сервера живим і підтримує вхід користувача. Я використовую $.ajax()
метод у JQuery. Здається, ця функція має властивість "помилка", яку я намагаюся використовувати у випадку, якщо підключення до Інтернету користувача перестає працювати, щоб сценарій 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 секунд, що нормально. Однак, як тільки я відключаю мережевий кабель, я нічого не отримую, я очікував, що функція помилки буде викликана і побачить вікно попередження "Помилка", але нічого не відбувається.
Чи правильно я припустив, що функція "помилка" призначена лише для кодів стану, що не мають "200", повернутих із сервера? Чи є спосіб виявити проблеми з мережевим підключенням під час здійснення дзвінка Ajax?