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));