Я закодировал так:
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID },
success: function (data) {
$('#CityID').html(data);
},
error: function (ajaxContext) {
alert(ajaxContext.responseText)
}
});
Но когда я смотрю на .ajax()
документацию jQuery в конце, мне кажется, что мне следует кодировать, как показано ниже, или, по крайней мере, предлагать добавить a .done()
и a .fail()
:
var request = $.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
});
request.done(function (data) {
xxx;
});
request.fail(function (jqXHR, textStatus) {
xxx;
});
Обновить
Если я кодирую так, это то же самое или есть какое-то преимущество, если разбить его на три части?
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
}).done(function (data) {
xxx;
}).fail(function (jqXHR, textStatus) {
xxx;
});
.error
,.success
) , которые являются устаревшими в пользу более универсального отсроченного рисунок, но и параметры кajax
методе не рекомендуются и являются действительными и приемлемым - даже в Jquery 1,9 / 2,0! Во всех текущих формах по-ajax
прежнему возвращает отложенное; возможно с уже прикрепленными отложенными обратными вызовами.jqXHR.success = jqXHR.done;
.success
,fail
,always
.Я хочу добавить кое-что на пост @Michael Laffargue:
jqXHR.done()
быстрее!jqXHR.success()
иметь некоторое время загрузки в обратном вызове и иногда может перебить сценарий. Я нахожу это трудным путем прежде.ОБНОВИТЬ:
Использование
jqXHR.done()
,jqXHR.fail()
иjqXHR.always()
вы можете лучше манипулировать с запросом ajax. Как правило, вы можете определить ajax в некоторой переменной или объекте и использовать эту переменную или объект в любой части вашего кода и быстрее получать данные. Хороший пример:источник
Простыми словами
если он получит info.text, он будет оповещать, и какую бы функцию вы ни добавили, или, если какая-либо, не сможет извлечь info.text с сервера, тогда функция оповещения или ошибки.
источник
Когда мы собираемся перенести JQuery с 1.x на 2x или 3.x в нашем старом существующем приложении, мы будем использовать .done, .fail вместо успеха, ошибка, поскольку градация JQuery up будет устаревшей для этих методов. Например, когда мы выполняем вызов веб-методов сервера, сервер возвращает объекты обещания вызывающим методам (методы Ajax), и эти объекты обещания содержат методы .done, .fail..etc. Поэтому мы будем одинаковыми для ответа об успешном и неудачном завершении. Ниже приведен пример (это для запроса POST таким же образом, как мы можем построить для типа запроса, как GET ...)
источник