Fetch API: GET, POST, PUT, DELETE
Senden Sie mit fetch GET-Anfragen, übertragen Sie JSON-Bodies in POST- und PUT-Anfragen und rufen Sie DELETE-Endpunkte auf, um Ressourcen zu entfernen.
Fetch API: GET, POST, PUT, DELETE ist eine kostenlose Frontend Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. 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 Frontend Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Frontend Academy-Kurs umfasst insgesamt 4 Lektionen.
Die Fetch API
fetch() ist die moderne Browser-API für HTTP-Anfragen. Sie gibt ein Promise zurück, das zu einem Response-Objekt aufgelöst wird. Sie ist in allen modernen Browsern und in Node.js 18+ standardmäßig verfügbar.
Grundlegende GET-Anfrage
Der einfachste fetch-Aufruf: Übergeben Sie eine URL, warten Sie auf die Antwort und parsen Sie JSON.
async function fetchUsers() {
const res = await fetch('https://api.example.com/users');
if (!res.ok) throw new Error('HTTP ' + res.status);
const users = await res.json();
return users;
}POST mit JSON-Body
Verwenden Sie method, headers und body. Der Body muss eine Zeichenkette sein – rufen Sie für das Objekt JSON.stringify() auf.
async function createUser(user) {
const res = await fetch('/api/users', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(user)
});
if (!res.ok) throw new Error('Failed: ' + res.status);
return res.json();
}
createUser({ name: 'Alice', email: 'alice@example.com' });PUT für vollständige Aktualisierungen
PUT ersetzt die Ressource. Senden Sie das gesamte Objekt – Felder, die Sie auslassen, werden auf dem Server normalerweise gelöscht.
await fetch(`/api/users/${id}`, {
method: 'PUT',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
id, name: 'Alice', email: 'alice@example.com', role: 'admin'
})
});PATCH für teilweise Aktualisierungen
PATCH aktualisiert nur die Felder, die Sie senden. Verwenden Sie es statt PUT für teilweise Aktualisierungen.
await fetch(`/api/users/${id}`, {
method: 'PATCH',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email: 'new@example.com' })
});DELETE-Anfrage
DELETE enthält normalerweise keinen Body. Die Antwort gibt häufig 204 No Content ohne Body zurück.
async function deleteUser(id) {
const res = await fetch(`/api/users/${id}`, { method: 'DELETE' });
if (!res.ok) throw new Error('Delete failed');
// 204 No Content — no JSON to parse
}Authentifizierungs-Header
Fügen Sie für geschützte Endpunkte einen Authorization-Header hinzu.
const res = await fetch('/api/me', {
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
}
});URL-Abfrageparameter
Erstellen Sie Abfragezeichenketten mit URLSearchParams, um sie sicher zu kodieren.
const params = new URLSearchParams({
q: 'react hooks',
page: '2',
pageSize: '20'
});
const res = await fetch(`/api/search?${params}`);
// /api/search?q=react+hooks&page=2&pageSize=20Warum fetch bei HTTP-Fehlern keine Ausnahme auslöst
fetch wird nur bei einem Netzwerkfehler zurückgewiesen – eine 404- oder 500-Antwort wird weiterhin erfolgreich aufgelöst. Prüfen Sie immer res.ok (true bei 2xx) oder res.status und lösen Sie manuell einen Fehler aus.
const res = await fetch('/api/users/999');
if (!res.ok) {
// res.ok is false for 4xx and 5xx
throw new Error(`Server error ${res.status}: ${await res.text()}`);
}AbortController zum Abbrechen
Brechen Sie eine laufende Anfrage ab, um veraltete Ergebnisse zu verhindern – unverzichtbar für die Typeahead-Suche und das Aufräumen von React-Effekten.
const controller = new AbortController();
fetch('/api/search?q=hooks', { signal: controller.signal })
.then(res => res.json())
.catch(err => {
if (err.name !== 'AbortError') throw err;
});
// Cancel:
controller.abort();FormData senden
Für Datei-Uploads oder Multipart-Formulare übergeben Sie ein FormData-Objekt als Body. Setzen Sie Content-Type nicht selbst – der Browser ergänzt ihn mit dem korrekten Boundary-Parameter.
const form = new FormData();
form.append('avatar', fileInput.files[0]);
form.append('name', 'Alice');
await fetch('/api/upload', { method: 'POST', body: form });
// no Content-Type header — browser sets multipart/form-dataKurze Überprüfung
Warum löst fetch() keinen Fehler aus, wenn der Server eine 404- oder 500-Antwort zurückgibt?
Zusammenfassung: Fetch API
fetch() gibt ein Promise von Response zurück. Methoden: GET (Standard), POST, PUT, PATCH, DELETE. JSON-Bodies benötigen JSON.stringify() und den Content-Type-Header. fetch wird nur bei einem Netzwerkfehler zurückgewiesen – prüfen Sie res.ok manuell. Verwenden Sie URLSearchParams für Abfragezeichenketten, AbortController zum Abbrechen und FormData für Datei-Uploads (kein Content-Type – der Browser übernimmt das).
Häufig gestellte Fragen
Ist die Lektion „Fetch API: GET, POST, PUT, DELETE“ kostenlos?
Ja — der vollständige Text von „Fetch API: GET, POST, PUT, DELETE“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Frontend Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Frontend Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Fetch API: GET, POST, PUT, DELETE“?
Senden Sie mit fetch GET-Anfragen, übertragen Sie JSON-Bodies in POST- und PUT-Anfragen und rufen Sie DELETE-Endpunkte auf, um Ressourcen zu entfernen. Du übst Frontend 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 Frontend Academy zu starten?
Keine Vorkenntnisse erforderlich. Frontend 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 1 von 4.
Wie lange dauert die Lektion „Fetch API: GET, POST, PUT, DELETE“?
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 Frontend Academy-Lektion Code schreiben und ausführen?
Ja. Jede Frontend 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
- Fetch API: GET, POST, PUT, DELETE
- Axios: Interceptors und Basis-URL
- Fehlerbehandlung: HTTP-Statuscodes
- SWR und React Query für Daten-Caching