Определите, является ли ошибка $ .ajax таймаутом

Я использую магию jQuery.ajax( settings ) .

Тем не менее, мне интересно, очень ли много играл с тайм-аутом?

Я знаю, что это в основном для того, чтобы диктовать местное время для запроса, но может ли оно вызвать что-либо, если тайм-аут будет достигнут? Или это просто перестает слушать ответ?

Читая jQuery-сайт, я вижу, что аргументы не передаются, поэтому он выглядит как простая настройка с одной возможностью. Это нормально.

Но я хотел бы вызвать предупреждение или какую-либо функцию, если тайм-аут будет достигнут. Я вижу, что в этом случае установка ошибки не запускается.

Вот мой fragment:

 $("form#testform").submit(function(){ var allFormValues = $("form#testform").serialize(); $.ajax({ cache:false, timeout:8000, // I chose 8 secs for kicks type:"POST", url:"someurl.php", data:allFormValues, error:function(){ alert("some error occurred") }, success:function(response){ alert(response); } }); }); 

Кто-нибудь знает, как больше работать с тайм-аутом?

Если ваш обработчик события ошибки принимает три аргумента (xmlhttprequest, textstatus и сообщение), когда происходит тайм-аут, статус arg будет «timeout».

В документации по jQuery :

Возможными значениями для второго аргумента (кроме нуля) являются «тайм-аут», «ошибка», «немодифицированный» и «parsererror».

Таким образом, вы можете обрабатывать свою ошибку.

Я создал эту скрипку, которая демонстрирует это.

 $.ajax({ url: "/ajax_json_echo/", type: "GET", dataType: "json", timeout: 1000, success: function(response) { alert(response); }, error: function(xmlhttprequest, textstatus, message) { if(textstatus==="timeout") { alert("got timeout"); } else { alert(textstatus); } } });​ 

С помощью jsFiddle вы можете тестировать вызовы ajax – он будет ждать 2 секунды, прежде чем отвечать. Я установил значение тайм-аута на 1 секунду, поэтому он должен выполнить ошибку и передать текстовый статус «timeout» в обработчик ошибок.

Надеюсь это поможет!

  • Возвращает $ .get данные в функции с помощью jQuery
  • Плагин jquery.validate - как обрезать значения перед проверкой формы
  • Не удалось загрузить Google в iframe в fancybox
  • jQuery.post () .done () и успех:
  • $ .getJSON возвращает кэшированные данные в IE8
  • Как передать параметры в $ ajax POST?
  • Как отображать загружаемое изображение при загрузке фактического изображения
  • Прослушивание переменных изменений в JavaScript
  • Ошибка: нечистить SyntaxError: Неожиданный токен <
  • Как выбрать все содержимое между двумя тегами в jQuery
  • Обновление плагина jQuery Tablesorter после удаления строки из DOM
  • Давайте будем гением компьютера.