Ответ 1
Глобальные события могут быть отключены для конкретного запроса Ajax, передав глобальный параметр, например:
$.ajax({
url: "test.html",
global: false,
// ...
});
Взято из: http://docs.jquery.com/Ajax_Events
Член команды поместил это в наш проект
$(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(); }
, или мне нужно разработать какой-то механизм для того, чтобы уловка все выборочно игнорировала вещи?
Глобальные события могут быть отключены для конкретного запроса Ajax, передав глобальный параметр, например:
$.ajax({
url: "test.html",
global: false,
// ...
});
Взято из: http://docs.jquery.com/Ajax_Events
Я бы просто ввел логический код в ваш код, который по умолчанию был ложным. Установите значение 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
}