$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
Иногда success
функция работает хорошо, иногда нет.
Как установить время ожидания для этого запроса AJAX? Например, 3 секунды, если время истекло, то показать ошибку.
Проблема в том, что ajax-запрос останавливает блок до его завершения. Если сервер не работает некоторое время, он никогда не закончится.
,
там после}
.Ответы:
Пожалуйста, прочитайте
$.ajax
документацию , это покрытая тема.Вы можете увидеть, какой тип ошибки был выдан, обратившись к параметру textStatus
error: function(jqXHR, textStatus, errorThrown)
опции. Возможные варианты: «timeout», «error», «abort» и «parsererror».источник
Вот несколько примеров, которые демонстрируют установку и обнаружение таймаутов в старой и новой парадигмах jQuery.
Live Demo
Обещай с jQuery 1.8+
jQuery 1.8+
jQuery <= 1.7.2
Обратите внимание, что параметр textStatus (или jqXHR.statusText ) сообщит вам об ошибке. Это может быть полезно, если вы хотите знать, что сбой был вызван тайм-аутом.
источник: http://api.jquery.com/jQuery.ajax/
источник
$.ajax().fail()
а$.ajax().error()
?Вы можете использовать
timeout
настройку в параметрах ajax, например:Прочитайте все об опциях ajax здесь: http://api.jquery.com/jQuery.ajax/
Помните, что по истечении времени ожидания
error
срабатывает обработчик, а неsuccess
обработчик :)источник
используйте полнофункциональную
.ajax
функцию jQuery. сравните с https://stackoverflow.com/a/3543713/1689451 для примера.без тестирования, просто объединяя ваш код с упомянутым SO вопросом:
источник