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

Javascript: Как остановить несколько обработчиков ошибок jQuery ajax?

Член команды поместил это в наш проект

$(function() {
    $("body").bind("ajaxError", function(event, XMLHttpRequest, ajaxOptions, thrownError){
        alert(thrownError);
    });
}

Однако я хочу подавить одну из моих ошибок (так как это был бы шум и проверка не нужна)

function blah() {

    ...

    errFunc = function(event, xhr, opts, errThrown) {
        //what could I do here?
        //event.stopImmediatePropagation()?
    }

    $.ajax({
        url        : '/unimportant_background_refresh',
        type       : 'GET',
        data       : { },
        dataType   : 'json',
        success    : updateBackgroundStuff,
        error      : errFunc,  // Suppresses error message.
    });

}

Как я могу остановить все ошибки, которые могут произойти, пожалуйста? Могу ли я просто что-то сделать в функции ошибок, например { event.StopPropogation(); }, или мне нужно разработать какой-то механизм для того, чтобы уловка все выборочно игнорировала вещи?

4b9b3361

Ответ 1

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

 $.ajax({
   url: "test.html",
   global: false,
   // ...
 });

Взято из: http://docs.jquery.com/Ajax_Events

Ответ 2

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

Что-то вроде:

function blah() {
    var errorHappened = false;

    ...

    errFunc = function(event, xhr, opts, errThrown) {
        if (errorHappened)
            return;

         errorHappened = true;

         // handle the errror.

    }

    // the rest of your code

}