Sobes.tech
Junior

fetch usuli nima qabul qiladi?

sobes.tech AI

AIdan javob

fetch usuli RequestInfo yoki URL manzili bo'lgan majburiy argumentni va RequestInit bo'lsa, iste'mol qilish uchun majburiy bo'lmagan argumentni qabul qiladi.

Majburiy argument (input) :

  • Satr: So'rov manzili (URL).
  • Request obyekti: Request sinfining nusxasi bo'lib, so'rovni yanada moslashtirish imkonini beradi (sarlavhalar, usul va boshqalar).

Iste'mol qilish uchun majburiy bo'lmagan argument (init) : So'rov konfiguratsiyasini tavsiflovchi maydonlarga ega obyekt. Ba'zi keng tarqalgan maydonlar:

  • method: HTTP usuli (GET, POST, PUT, DELETE, OPTIONS va boshqalar).
  • headers: So'rov sarlavhalari. Kalit-qiymat obyekt yoki Headers sinfi nusxasi bo'lishi mumkin.
  • body: So'rov matni (GET yoki HEAD dan boshqa usullar uchun). Matn, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams yoki ReadableStream bo'lishi mumkin.
  • mode: So'rov rejimi (cors, no-cors, same-origin, navigate).
  • credentials: Kiritilgan ma'lumotlarni yuborish uchun sozlamalar (omit, same-origin, include).
  • cache: Kesh sozlamalari (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Qanday qilib yo'naltirishlarni boshqarish (follow, error, manual).
  • referrer: Referer sarlavhasi uchun qiymat.
  • referrerPolicy: Referer sarlavhasini yuborish siyosati.
  • integrity: Integrity sarlavhasi uchun qiymat. Subresource Integrity uchun ishlatiladi.
  • keepalive: So'rov sahifa yopilgandan so'ng faol qolishi kerakligini ko'rsatadigan boolean qiymat (analitika yoki hisobot yuborish uchun).
  • signal: So'rovni bekor qilish uchun AbortSignal nusxasi.
  • window: So'rov bilan bog'liq Window obyekti (standart, joriy oynani).

Misol:

// GET so'rovi
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Xato:', error));

// Body va sarlavhalar bilan POST so'rovi
fetch('/api/products', {
  method: 'POST', // HTTP usuli
  headers: {
    'Content-Type': 'application/json', // Yuborilayotgan ma'lumot turi
    'Authorization': 'Bearer your_token' // Autentifikatsiya sarlavhasi misoli
  },
  body: JSON.stringify({ name: 'Yangi mahsulot', price: 100 }) // So'rov matni
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP xatosi! status: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Muvaffaqiyat:', data))
  .catch(error => console.error('Xato:', error));