JavaScript fetch bilan API'dan ma'lumot olish
Zamonaviy sahifa ma’lumotni serverdan sahifani yangilamasdan oladi:
mahsulotlar ro’yxati, ob-havo, izohlar. Buni fetch bajaradi.
Birinchi so’rov
Ikki qadam bor va ikkalasi ham await talab qiladi:
fetch(...)— so’rov yuboradi, javob sarlavhalari kelganda tugaydi;javob.json()— javob tanasini o’qib, JavaScript obyektiga o’giradi.
Status tekshirish — muhim tuzoq
404 keldi, lekin fetch xato bermadi. Bu ko’p uchraydigan yanglish
tushuncha: fetch faqat tarmoq uzilganda rad etiladi; server javob bersa —
hatto 404 yoki 500 bo’lsa ham — muvaffaqiyat hisoblanadi.
Shuning uchun ok ni qo’lda tekshirish kerak:
try/catch bilan to’liq naqsh
Bu — amaliyotdagi standart naqsh: try/catch + ok tekshiruvi birga.
Ro’yxat olish va chizish
Serverdan kelgan ma’lumot DOM ga aylantirildi — bu veb-ilovaning eng asosiy amali.
POST — ma’lumot yuborish
Ma’lumot yuborish uchun qo’shimcha sozlamalar kerak:
const javob = await fetch("https://example.com/api/talabalar", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ ism: "Aziz", yosh: 20 }),
});
const natija = await javob.json();
Uch narsa muhim:
method— so’rov turi (GETstandart,POST,PUT,DELETE);headers—Content-Typeserver tanani qanday o’qishini aytadi;body— matn bo’lishi kerak, shuning uchunJSON.stringify.
Yuklanish holatini ko’rsatish
Uch holat — yuklanmoqda, natija, xato — har qanday ma’lumot oluvchi interfeysning majburiy qismi.
Parallel so’rovlar
Ikki Promise.all: birinchisi so’rovlarni, ikkinchisi tanalarni parallel
kutadi — async/await darsidagi qoida.
Amaliy mashq
- GitHub API’dan istalgan repo ma’lumotini oling;
javob.okni tekshirib, xato bo’lsathrowqiling;- butun kodni
try/catchga o’rang; - kelgan ro’yxatni
<ul>ichida chizing; - “Yuklanmoqda” holatini qo’shing;
- mavjud bo’lmagan manzil so’rab,
fetchxato bermasligini tasdiqlang.
6-qadam fetch haqidagi eng ko’p uchraydigan yanglishni tekshiradi.
Qisqacha xulosa
fetchso’rov yuboradi va Promise qaytaradi —awaitbilan ishlatiladi.- Tanani o’qish alohida qadam:
await javob.json(). fetch404/500da xato bermaydi —javob.okni qo’lda tekshiring.- POST uchun
method,headersvaJSON.stringify(body)kerak. - Yuklanmoqda / natija / xato — uchala holat ham ko’rsatilishi kerak.
- Bog’liq bo’lmagan so’rovlarni
Promise.allbilan parallel yuboring.
Keyingi darsda JSON formatini batafsil ko’ramiz.