Sobes.tech
Junior

fetch yöntemi ne alır?

sobes.tech yapay zeka

AI'dan gelen yanıt

fetch yöntemi, bir zorunlu argüman olan istek yolu (RequestInfo veya URL) ve bir isteğe bağlı argüman olan ayar nesnesi (RequestInit) alır.

Zorunlu argüman (input) :

  • Dize: Kaynak URL'si.
  • Request nesnesi: Request sınıfının bir örneği olup, isteğin daha esnek yapılandırılmasını sağlar (başlıklar, yöntem vb.).

İsteğe bağlı argüman (init) : İsteğin yapılandırmasını tanımlayan alanlara sahip bir nesne. Sık kullanılan bazı alanlar:

  • method: HTTP isteği yöntemi (GET, POST, PUT, DELETE, OPTIONS vb.).
  • headers: İstek başlıkları. Anahtar-değer nesnesi veya Headers sınıfı örneği olabilir.
  • body: İstek gövdesi (GET veya HEAD dışındaki yöntemler için). Dize, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams veya ReadableStream olabilir.
  • mode: İstek modu (cors, no-cors, same-origin, navigate).
  • credentials: Kimlik bilgisi gönderme ayarı (omit, same-origin, include).
  • cache: Önbellekleme ayarı (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Yönlendirmeleri nasıl işleyeceği (follow, error, manual).
  • referrer: Referer başlığı için değer.
  • referrerPolicy: Referer başlığının iletim politikası.
  • integrity: Integrity başlığı için değer. Alt kaynak bütünlüğü için kullanılır.
  • keepalive: Sayfa kapandıktan sonra isteğin aktif kalmasını belirten boolean değer (analitik veya rapor gönderimi için).
  • signal: İsteği iptal etmek için AbortSignal örneği.
  • window: İle ilişkili olan Window nesnesi (varsayılan olarak mevcut pencere).

Kullanım örneği:

// GET isteği
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Hata:', error));

// Gövde ve başlıklar ile POST isteği
fetch('/api/products', {
  method: 'POST', // HTTP yöntemi
  headers: {
    'Content-Type': 'application/json', // Gönderilen veri tipi
    'Authorization': 'Bearer your_token' // Yetkilendirme başlığı örneği
  },
  body: JSON.stringify({ name: 'Yeni ürün', price: 100 }) // İstek gövdesi
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP hatası! durum: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Başarılı:', data))
  .catch(error => console.error('Hata:', error));