Подтвердить что ты не робот

Как поймать ошибку в методе jQuery load()

Я использую метод jQuery .load() для получения некоторых данных, когда пользователь нажимает кнопку.

После успешного завершения загрузки я показываю результат в <div>.

Проблема в том, что иногда ошибка возникает при load() при извлечении данных.

Как я могу поймать ошибку в load()?

4b9b3361

Ответ 1

load() документация.

Немного о том, как происходит ошибка загрузки...

$("body").load("/someotherpath/feedsx.pxhp", {limit: 25}, 
    function (responseText, textStatus, req) {
        if (textStatus == "error") {
          return "oh noes!!!!";
        }
});

Изменить: добавлен путь, отличный от корневого пути, по запросу комментариев.

Ответ 2

Помимо передачи обратного вызова функции load(), как предлагает Ólafur Waage, вы также можете зарегистрировать "глобальные" обработчики ошибок (глобальные как в глобальном для всех вызовов ajax на странице).

Существует как минимум два способа регистрации глобальных обработчиков ошибок Ajax:

Зарегистрируйте только обработчик ошибок с помощью ajaxError():

$.ajaxError(function(event, request, settings) {
      alert("Oops!!");
});

Или используйте ajaxSetup(), чтобы одновременно настроить обработчик ошибок и другие свойства:

$.ajaxSetup({
    timeout: 5000,
    error: function(event, request, settings){
        alert("Oops!");
    }
});

Ответ 3

load() предлагает обратный вызов.

Обратный вызов.
Функция, вызываемая при завершении запроса ajax (не обязательно успех).

Вот как это делается IIRC. (не проверял его)

$("#feeds").load("feeds.php", {limit: 25}, 
    function (responseText, textStatus, XMLHttpRequest) {
        // XMLHttpRequest.responseText has the error info you want.
        alert(XMLHttpRequest.responseText);
});

Ответ 4

На электроинструментах есть статья под названием "Загрузка содержимого с помощью jQuery AJAX и устранение сбоев" , который, как представляется, отвечает на ваш вопрос.

Очевидно, что функция обратного вызова, которую вы указываете, получает объект ответа, статуса и XmlHttpRequest, что позволяет вам определить статус вашего запроса ajax и соответствующим образом обрабатывать условие.