我已经写了这样的代码:
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID },
success: function (data) {
$('#CityID').html(data);
},
error: function (ajaxContext) {
alert(ajaxContext.responseText)
}
});
但是当我查看 jQuery 的 .ajax()
文档 时,最后似乎建议我编写以下代码,或者至少建议添加 .done()
和 .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
),它们已经过时,推荐使用更通用的Deferred模式,但是ajax
方法的参数没有被弃用,它们仍然是有效和可接受的——即使在jQuery 1.9/2.0中也是如此!在所有目前的形式中,ajax
仍然返回一个Deferred,可能已经附加了Deferred回调。 - user2246674jqXHR.success = jqXHR.done;
。意思是将jqXHR.done
赋值给jqXHR.success
。 - Michael Laffargue