Вызов jquery ajax -.fail vs.: error
Какой я должен использовать?
Есть ли причина использовать один, а не другой?
Лучше для обработки ошибок?
$.ajax({
url: url,
data: { start: start, end: end }
}).done(function(data, textStatus, jqXHR) {
$('#myElement').append(data);
}).fail(function() {
// report error
});
ИЛИ
$.ajax({
url: url,
data: { start: start, end: end },
success: function(data, textStatus, jqXHR) {
$('#myElement').append(data);
},
error: function(jqXHR, textStatus, errorThrown) {
// report error
}
});
Ответы
Ответ 1
Два варианта эквивалентны.
Однако интерфейс интерфейса в стиле обещания (.fail()
и .done()
) позволяет отделить код, создающий запрос от кода, обрабатывающего ответ.
Вы можете написать функцию, которая отправляет запрос AJAX и возвращает объект jqXHR, а затем вызывает эту функцию в другом месте и добавляет обработчик.
В сочетании с функцией .pipe()
интерфейс в стиле обещания также может помочь уменьшить вложенность при совершении нескольких вызовов AJAX:
$.ajax(...)
.pipe(function() {
return $.ajax(...);
})
.pipe(function() {
return $.ajax(...);
})
.pipe(function() {
return $.ajax(...);
});
Ответ 2
Просто чтобы освежить это...
Подход к успеху и ошибкам устарел от jQuery 1.8.
jQuery Ajax
Уведомление об изъятии: обратные вызовы jqXHR.success(), jqXHR.error() и jqXHR.complete() устаревают с jQuery 1.8. Чтобы подготовить код для их возможного удаления, используйте вместо него jqXHR.done(), jqXHR.fail() и jqXHR.always().