Sobes.tech
Junior

Метод fetch чӣ қабул мекунад?

sobes.tech AI

Ҷавоб аз AI

Метод fetch қабул мекунад як аргумент зарурӣ — роҳ ба дархост (RequestInfo ё URL) — ва як аргумент ихтиёрӣ — объект танзимот (RequestInit).

Аргументи зарурӣ (input):

  • Сатр: URL-и манбаъ.
  • Объект Request: Намунаи синфи Request, ки танзимоти дархости бештарро пешниҳод мекунад (сарлавҳаҳо, усул ва ғайра).

Аргументи ихтиёрӣ (init): Объект бо майдонҳое, ки танзимоти дархостро тавсиф мекунанд. Баъзе майдонҳои маъмул:

  • method: Усули HTTP-и дархост (GET, POST, PUT, DELETE, OPTIONS ва ғайра).
  • headers: Сарлавҳаҳои дархост. Мумкин аст объекти калид-арзиш ё намунаи синфи Headers.
  • body: Танаи дархост (барои усулҳое, ки аз GET ё HEAD фарқ мекунанд). Мумкин аст сатр, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams ё ReadableStream бошад.
  • mode: Ҳолати дархост (cors, no-cors, same-origin, navigate).
  • credentials: Танзимоти ирсол кардани маълумоти корбарӣ (omit, same-origin, include).
  • cache: Танзимоти кешгирӣ (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Чӣ гуна коркарди равонакунииҳо (follow, error, manual).
  • referrer: Арзиши барои сарлавҳаи Referer.
  • referrerPolicy: Сиёсати интиқоли сарлавҳаи Referer.
  • integrity: Арзиши барои сарлавҳаи Integrity. Барои Subresource Integrity истифода мешавад.
  • keepalive: Арзиши булӣ, ки нишон медиҳад, ки дархост пас аз анҷоми саҳифа бояд боқӣ монад (барои фиристодани аналитика ё ҳисоботҳо).
  • signal: Намунаи AbortSignal барои бекор кардани дархост.
  • window: Объекти Window, ки дар он дархост алоқаманд аст (ба муқаррарӣ, тирезаи ҳозира).

Маслиҳат барои истифода:

// Дархости GET
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Хатогӣ:', error));

// Дархости POST бо тана ва сарлавҳаҳо
fetch('/api/products', {
  method: 'POST', // Усули HTTP
  headers: {
    'Content-Type': 'application/json', // Навъи додаҳо
    'Authorization': 'Bearer your_token' // Масалан, сарлавҳаи иҷозатнома
  },
  body: JSON.stringify({ name: 'Нав маҳсулот', price: 100 }) // Танаи дархост
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`Хатогии HTTP! статус: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Муҳим:', data))
  .catch(error => console.error('Хатогӣ:', error));