COMPUTER ENGINEER

Örneklere git
Blog
HTTP / HTTPS / TLS6 dk çalışma
66/ 70

Teşhis, alıştırmalar ve bitirme

Fetch, AbortController ve body stream

Promise tamamlandı diye iş başarılı değildir.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Fetch, 404 veya 500 gibi HTTP yanıtlarında promise’i genellikle reject etmez; response.ok/status kontrolü gerekir. Network veya CORS gibi durumlar farklı hata yoluna düşebilir. 204 gövdesini json() ile okumak parse hatası doğurabilir. Yanıt türünü ve sözleşmesini bil.

Body bir stream’dir; json(), text() gibi tüketimler tek kez kullanılabilir. İkinci okuma için clone veya bilinçli buffering gerekir; büyük body’lerde maliyet yaratır. AbortController istemci beklemesini ve devam eden aktarımı iptal etmeye yardımcı olur, server side commit’i geri alma garantisi değildir.

credentials:include gönderim politikasını değiştirir ama SameSite veya CORS engelini geçersiz kılmaz. mode:no-cors opaque yanıt üretir. Fetch wrapper hata tiplerini, timeout, request ID ve güvenli loglama sözleşmesini birleştirebilir; bütün server response’larını otomatik retry etmemelidir.

NERESİNDE KULLANIRSIN?

Next.js frontend’de doğru API servisleri yazmak için.

SIK YAPILAN HATA

Fetch catch bloğunun bütün HTTP hatalarını yakalayacağını sanmak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

HTTP / temsili örnek
const response = await fetch("/api/projects");
if (!response.ok) throw new Error(`HTTP ${response.status}`);

HTTP status açıkça kontrol edilir.

Bu sayfa dış sunuculara istek göndermez. HTTP mesajları temsili, HTTP/1.1 biçiminde okunabilir gösterimlerdir; HTTP/2 ve HTTP/3 wire formatı değildir. example.test ayrılmış öğretim alan adıdır. Komut ve JavaScript örneklerini yalnız kendi test ortamında uygula; gerçek token veya cookie yayımlama.

02 / SIRA SENDE

Önce kendin dene.

Fetch 403 döndüğünde catch zorunlu çalışır mı?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
Check response.ok / response.status

Hayır; yanıtı ayrıca kontrol etmelisin.