Использование .ajaxError AND установка функции ошибки в $ .ajax () - PullRequest
11 голосов
/ 26 июня 2010

В настоящее время я переписываю все свои вызовы ajax, чтобы использовать метод jquery (намного чище код!), И объявил функцию ajaxError по умолчанию, показанную ниже:

$(document).ajaxError(function(event, request, settings){
  alert("there was some error.. boo");
});

Мой вызов ajax со своим собственным определеннымФункция ошибки, для которой я не хочу, чтобы значение по умолчанию запускалось выше:

$.ajax({ url: url,
    success: function(data){
        // do something
    },
    error: function (r, textStatus, errorThrown) { 
        // let's do something here regarding the error
        alert("Oh no! Something went terribly wrong in here!");
        // just trying this to see if it will stop any other events (ie default ajaxError)
        event.stopImmediatePropagation();
    }
});

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

Я попытался вызвать event.stopImmediatePropagation () из моей ошибки ajaxфункция надеется, что она остановит дальнейшее срабатывание событий (т.е. событие ошибки по умолчанию), но ничего не сделало, кроме как сказать мне в firefox, что «событие» было неопределенным.

Есть идеи?Я надеялся, что мне не придется проходить и определять функцию ошибки для КАЖДОГО вызова ajax.Если все сводится к этому, я буду.Просто подумал, что я спрошу.

Спасибо, Мэтт

1 Ответ

9 голосов
/ 26 июня 2010

Существует global опция на $.ajax() для этого, которая определяет, выполнять или нет эти глобальные обработчики событий AJAX , просто установите для нее значениеfalse, вот так:

$.ajax({ 
    url: url,
    global: false,
    success: function(data){
        // do something
    },
    error: function (r, textStatus, errorThrown) { 
        alert("Oh no! Something went terribly wrong in here!");
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...