In dieser Lektion lernst du, wie JavaScript mit externen Daten kommuniziert. Fast jede moderne Webanwendung lädt oder sendet Daten über das Netzwerk. Dafür brauchst du ein solides Verständnis von HTTP und der Fetch API.
Typische Beispiele:
Ein HTTP-Austausch besteht aus:
GET — Daten abrufenPOST — neue Daten sendenPUT/PATCH — Daten ändernDELETE — Daten löschen200 — OK201 — Created400 — Bad Request401 — Unauthorized404 — Not Found500 — Server Error
fetch ist asynchron und gibt immer ein Promise zurück.
fetch("https://api.example.com/data")
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
response.json() liest den Antwort-Body
und gibt ebenfalls ein Promise zurück.
async/await wird Fetch-Code deutlich lesbarer.
async function loadData() {
try {
const response = await fetch("https://api.example.com/data");
const data = await response.json();
console.log(data);
} catch (err) {
console.error(err);
}
}
loadData();
async function loadData() {
const response = await fetch("https://api.example.com/data");
if (!response.ok) {
throw new Error("HTTP-Fehler: " + response.status);
}
return response.json();
}
response.ok ist false bei Statuscodes ≥ 400.
fetch können auch Daten an einen Server gesendet werden.
fetch("https://api.example.com/users", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
name: "Iman",
age: 22
})
});
// JavaScript → JSON
const json = JSON.stringify({ a: 1 });
// JSON → JavaScript
const obj = JSON.parse(json);
async function showUsers() {
const res = await fetch("https://api.example.com/users");
const users = await res.json();
const list = document.querySelector("#list");
list.innerHTML = "";
users.forEach(user => {
const li = document.createElement("li");
li.textContent = user.name;
list.appendChild(li);
});
}
awaitresponse.okfetch bei 404 automatisch scheitertfetch geladen werden.
POST ein Objekt an eine Test-API
und überprüfe die Antwort.