JQuery AJAX: как реализовать тайм-аут, когда интернет не подключен - PullRequest
2 голосов
/ 21 февраля 2011

Я пытаюсь сделать ajax-запрос и хочу выяснить, что Интернет не подключен. Поэтому я подумал, что если запрос ajax дает ошибку тайм-аута, он может быть приравнен к отсутствию подключения к Интернету (я знаю, что это не правильно). Во всяком случае, вот мой код ...

$.ajax({
        url: 'http://mydomain.com/getdata',
        dataType: 'json',
        data: 'product=all',
        timeout: 3000,
        success: function(data) {
            if (data.success == 'yes') {
              alert('I was successfull');
            } else {
              alert('I failed');
            }
        },
        error: function(objRequest, errortype) {
            if (errortype == 'timeout') {
              alert('I timed out');
            }
        }
    });

Я попытался отправить запрос, когда Интернет не был подключен, и думал, что через 3 секунды я получу ошибку «тайм-аут» (поскольку я установил тайм-аут на 3000). Но я получил "parseerror". Почему это случилось?

Как правильно реализовать что-то вроде отсутствия подключения к интернету?

1 Ответ

3 голосов
/ 21 февраля 2011

Я не уверен, почему вы получаете "parseerror", но, пожалуйста, посмотрите эту скрипку:

http://jsfiddle.net/pgWCg/

JSFiddle позволяет вам отправлять параметр данных для задержки, чтобы проверить время ожидания, поэтому я установил задержку на 3 секунды, а значение времени ожидания на 2 секунды, и это действительно предупреждает сообщение «I timed out».

Вы можете изменить оба значения, чтобы задержка работала должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...