Sobes.tech
Junior

fetch metodu nə qəbul edir?

sobes.tech Süni İntellekt

AI-dan cavab

fetch metodu, tələbin yolunu (RequestInfo və ya URL) və bir seçim obyektini (RequestInit) qəbul edən bir məcburi arqument və seçim obyektini qəbul edən bir qeyri-məcburi arqument qəbul edir.

Məcburi arqument (input) :

  • Sətir: Resursun URL-si.
  • Request obyekti: Request sinfinin nümunəsi olub, tələbin daha çevik konfiqurasiyasını təmin edir (başlıqlar, metod və s.).

Qeyri-məcburi arqument (init) : Tələbin konfiqurasiyasını təsvir edən sahələrə malik obyekt. Bəzi tez-tez istifadə olunan sahələr:

  • method: HTTP metod (GET, POST, PUT, DELETE, OPTIONS və s.).
  • headers: Tələbin başlıqları. Açar-dəyər obyekt və ya Headers sinfi nümunəsi ola bilər.
  • body: Tələbin gövdəsi (GET və ya HEAD-dən başqa metodlar üçün). Sətir, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams və ya ReadableStream ola bilər.
  • mode: Tələb rejimi (cors, no-cors, same-origin, navigate).
  • credentials: Kimlik məlumatlarının göndərilməsi üçün konfiqurasiya (omit, same-origin, include).
  • cache: Keş konfiqurasiyası (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Yenidən yönləndirmələrə necə yanaşmaq (follow, error, manual).
  • referrer: Referer başlığı üçün dəyər.
  • referrerPolicy: Referer başlığının ötürülmə siyasəti.
  • integrity: Integrity başlığı üçün dəyər. Subresource Integrity üçün istifadə olunur.
  • keepalive: Sayfa bağlandıqdan sonra tələbin aktiv qalmasını göstərən boolean dəyər (analitika və ya hesabatlar üçün).
  • signal: Tələbi ləğv etmək üçün AbortSignal nümunəsi.
  • window: Tələblə əlaqəli olan Window obyekti (varsayılan, cari pəncərə).

İstifadə nümunəsi:

// GET tələbi
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Xəta:', error));

// Gövdə və başlıqlarla POST tələbi
fetch('/api/products', {
  method: 'POST', // HTTP metodu
  headers: {
    'Content-Type': 'application/json', // Göndərilən məlumatın tipi
    'Authorization': 'Bearer your_token' // Nümunə icazə başlığı
  },
  body: JSON.stringify({ name: 'Yeni məhsul', price: 100 }) // Tələbin gövdəsi
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP xətası! status: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Uğur:', data))
  .catch(error => console.error('Xəta:', error));