Alan Alan - 2 months ago 13
jQuery Question

Should I use .done() and .fail() for new jQuery AJAX code instead of success and error

I have coded like this:

$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID },
success: function (data) {
$('#CityID').html(data);
},
error: function (ajaxContext) {
alert(ajaxContext.responseText)
}
});


But when I look at the jQuery
.ajax()
documentation
at the end it seems to suggest I should be coding like this below or at least it suggests adding a
.done()
and 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;
});


Update

If I code like this is it the same or is there some advantage to breaking it into three ?

$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID }
}).done(function (data) {
xxx;
}).fail(function (jqXHR, textStatus) {
xxx;
});

Answer

As stated by user2246674, using success and error as parameter of the ajax function is valid.

To be consistent with precedent answer, reading the doc :

Deprecation Notice:

The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callbacks will be deprecated in jQuery 1.8. To prepare your code for their eventual removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.

If you are using the callback-manipulation function (using method-chaining for example), use .done(), .fail() and .always() instead of success(), error() and complete().

Comments