Welches soll ich verwenden?
Gibt es einen Grund, das eine anstelle des anderen zu verwenden?
Ist man besser für die Fehlerbehandlung?
$.ajax({
url: url,
data: { start: start, end: end }
}).done(function(data, textStatus, jqXHR) {
$('#myElement').append(data);
}).fail(function() {
// report error
});
ODER
$.ajax({
url: url,
data: { start: start, end: end },
success: function(data, textStatus, jqXHR) {
$('#myElement').append(data);
},
error: function(jqXHR, textStatus, errorThrown) {
// report error
}
});
Nur um das aufzufrischen ...
Der Erfolgs- und Fehleransatz wurde ab jQuery 1.8 verworfen.
jQuery Ajax
quelle
error()
auf demjqXHR
Objekt, nicht$.ajax
selbst, das ist das, was der Benutzer eingegeben werden .$.ajax
gibt a zurückjqXHR
, also ist @slohr korrekt.success
underror
nicht auf die Funktionen auf Objektebene anwenden, an die übergeben wurde$.ajax()
$.ajax()
.Die Verwendung des verkettbaren Versprechungsstils für verzögerte Objekte ermöglicht eine sauberere Struktur und die Verwendung von Always .
let data = {"key":"value"} $.ajax({ type: 'PUT', url: 'http://example.com/api', contentType: 'application/json', data: JSON.stringify(data), }).done(function () { console.log('SUCCESS'); }).fail(function (msg) { console.log('FAIL'); }).always(function (msg) { console.log('ALWAYS'); });
quelle