AJAX-Fehler und -Erfolge verarbeiten
Implementieren Sie mit .fail() und .always() robuste Mechanismen zur Fehlerbehandlung und verarbeiten Sie erfolgreich abgerufene Daten mit .done(), um widerstandsfähige Anwendungen zu erstellen.
AJAX-Fehler und -Erfolge verarbeiten ist eine kostenlose jQuery Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des jQuery Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der jQuery Academy-Kurs umfasst insgesamt 3 Lektionen.
Asynchrone Ergebnisse verarbeiten
Wenn Sie eine AJAX-Anfrage stellen, handelt es sich um eine asynchrone Operation. Das bedeutet, dass Ihr Code nicht auf die Antwort des Servers wartet, sondern mit der Ausführung anderer Aufgaben fortfährt.
Um die Antwort des Servers (oder deren Ausbleiben) zu verarbeiten, stellt jQuery spezielle Methoden bereit, die als Callbacks bezeichnet werden. Diese Funktionen werden nur ausgeführt, wenn bestimmte Ereignisse eintreten, beispielsweise ein Erfolg oder ein Fehler.
Wenn alles funktioniert
Der .done()-Callback ist die erste Wahl, um erfolgreiche AJAX-Anfragen zu verarbeiten. Er wird ausgeführt, wenn der Server mit einem Statuscode antwortet, der Erfolg signalisiert (typischerweise 200–299).
- Er erhält die vom Server zurückgegebenen Daten.
- Er eignet sich ideal, um Ihre Benutzeroberfläche mit aktuellen Informationen zu aktualisieren.
Erfolgreiche Daten anzeigen
Rufen wir einige Daten ab und zeigen sie an, wenn die Anfrage erfolgreich war. Beachten Sie, wie .done() an den Aufruf von $.ajax() angehängt wird.
$(document).ready(function() {
$.ajax({
url: "https://jsonplaceholder.typicode.com/posts/1",
method: "GET"
})
.done(function(data) {
console.log("Success! Data received:");
console.log(data.title); // Access a property
$('body').append('<p>Post Title: ' + data.title + '</p>');
});
});Wenn etwas schiefgeht
Doch was passiert, wenn der Server Ihre Anfrage nicht erfüllen kann? Hier kommt der .fail()-Callback zum Einsatz. Er wird ausgeführt, wenn bei der AJAX-Anfrage ein Fehler auftritt, beispielsweise 404 (Nicht gefunden) oder 500 (Serverfehler).
- Er hilft Ihnen dabei, den Benutzer zu informieren oder Probleme zu protokollieren.
- Er erhält Details zum Fehler.
Auf Fehler reagieren
Versuchen wir, Daten von einer nicht vorhandenen URL abzurufen. Der .fail()-Callback fängt den Fehler ab und protokolliert seine Details.
$(document).ready(function() {
$.ajax({
url: "https://jsonplaceholder.typicode.com/nonexistent", // This URL will fail
method: "GET"
})
.done(function(data) {
console.log("This won't run on error.");
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log("Error! Status: " + textStatus);
console.log("HTTP Error: " + errorThrown);
$('body').append('<p>Error fetching data!</p>');
$('body').append('<p>Status: ' + textStatus + '</p>');
});
});Fehlerparameter entschlüsseln
Der .fail()-Callback stellt drei nützliche Parameter bereit, die Ihnen helfen, die Fehlerursache zu verstehen:
jqXHR: Das jQuery-XMLHttpRequest-Objekt mit detaillierten Informationen auf niedriger Ebene.textStatus: Eine Zeichenfolge, die den Fehlertyp beschreibt (z. B. "timeout", "error", "abort").errorThrown: Der HTTP-Statustext (z. B. "Not Found" bei einem 404-Fehler).
Verwenden Sie diese Informationen, um Ihren Benutzern gezieltes Feedback zu geben.
Immer ausführen, ganz gleich was passiert
Manchmal müssen Sie eine Aktion unabhängig davon ausführen, ob die AJAX-Anfrage erfolgreich war oder fehlgeschlagen ist. Dafür ist der .always()-Callback zuständig.
- Er wird immer nach entweder
.done()oder.fail()ausgeführt. - Er eignet sich hervorragend für Aufräumarbeiten, beispielsweise zum Ausblenden eines Ladeindikators oder zum erneuten Aktivieren einer Schaltfläche.
Aufräumarbeiten durchführen
Fügen wir unserem vorherigen Beispiel .always() hinzu. Wir simulieren einen Ladezustand und stellen sicher, dass dieser entfernt wird, unabhängig davon, ob die Anfrage erfolgreich ist oder fehlschlägt.
$(document).ready(function() {
$('body').append('<p id="status">Loading data...</p>'); // Simulate loading
$.ajax({
url: "https://jsonplaceholder.typicode.com/posts/1", // Try changing to 'nonexistent' to see fail+always
method: "GET"
})
.done(function(data) {
console.log("Success! Data: " + data.title);
$('#status').text('Data loaded successfully!');
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log("Failed! " + textStatus);
$('#status').text('Failed to load data!');
})
.always(function() {
console.log("Request finished (success or failure).");
// This could be where you hide a spinner or re-enable a button
$('#status').append(' (Finished)');
});
});Callbacks übersichtlich organisieren
Die AJAX-Methoden von jQuery geben ein Promise-ähnliches Objekt zurück. Dadurch können Sie die Methoden .done(), .fail() und .always() direkt verketten.
Durch diese Verkettung wird Ihr Code übersichtlicher und leichter lesbar, da die Blöcke für Erfolg, Fehler und abschließende Aktionen klar voneinander getrennt sind.
Testen Sie Ihr Wissen
Betrachten Sie die folgende jQuery-AJAX-Anfrage:
$.ajax({
url: "/api/data",
method: "GET"
})
.done(function() {
console.log("A");
})
.fail(function() {
console.log("B");
})
.always(function() {
console.log("C");
});
Wenn der Server mit einem Fehler 404 Not Found antwortet, was wird in der Konsole ausgegeben?
AJAX-Verarbeitung zusammenfassen
Sie beherrschen nun die wichtigsten Callbacks für eine robuste AJAX-Verarbeitung:
.done(): Für erfolgreiche Antworten..fail(): Zur Verarbeitung von Fehlern..always(): Für Aktionen, die unabhängig vom Ergebnis ausgeführt werden sollen.
Mit diesen Methoden können Ihre Anwendungen Netzwerkinteraktionen zuverlässig verarbeiten und Benutzern auch dann eine bessere Erfahrung bieten, wenn nicht alles wie geplant läuft.
Häufig gestellte Fragen
Ist die Lektion „AJAX-Fehler und -Erfolge verarbeiten“ kostenlos?
Ja — der vollständige Text von „AJAX-Fehler und -Erfolge verarbeiten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des jQuery Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der jQuery Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „AJAX-Fehler und -Erfolge verarbeiten“?
Implementieren Sie mit .fail() und .always() robuste Mechanismen zur Fehlerbehandlung und verarbeiten Sie erfolgreich abgerufene Daten mit .done(), um widerstandsfähige Anwendungen zu erstellen. Du übst jQuery Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um jQuery Academy zu starten?
Keine Vorkenntnisse erforderlich. jQuery Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 3.
Wie lange dauert die Lektion „AJAX-Fehler und -Erfolge verarbeiten“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser jQuery Academy-Lektion Code schreiben und ausführen?
Ja. Jede jQuery Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- AJAX-Anfragen effektiv konfigurieren
- AJAX-Fehler und -Erfolge verarbeiten
- Cross-Domain-AJAX (CORS/JSONP)