Sobes.tech
Junior

Čo prijíma metóda fetch?

sobes.tech AI

Odpoveď od AI

Metóda fetch prijíma jeden povinný argument — cestu ku požiadavke (RequestInfo alebo URL) — a jeden voliteľný argument — objekt nastavení (RequestInit).

Povinný argument (input):

  • Reťazec: URL zdroja.
  • Objekt Request: Inštancia triedy Request, ktorá poskytuje flexibilnejšie nastavenie požiadavky (hlavičky, metóda atď.).

Voliteľný argument (init): Objekt s poliami, ktoré opisujú nastavenia požiadavky. Niektoré často používané polia:

  • method: HTTP metóda požiadavky (GET, POST, PUT, DELETE, OPTIONS a pod.).
  • headers: Hlavičky požiadavky. Môže byť objektom kľúč-hodnota alebo inštanciou triedy Headers.
  • body: Telo požiadavky (pre metódy odlišné od GET alebo HEAD). Môže byť reťazec, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams alebo ReadableStream.
  • mode: Režim požiadavky (cors, no-cors, same-origin, navigate).
  • credentials: Nastavenie odoslania poverení (omit, same-origin, include).
  • cache: Nastavenie kešovania (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Ako spracovať presmerovania (follow, error, manual).
  • referrer: Hodnota pre hlavičku Referer.
  • referrerPolicy: Politika odovzdávania hlavičky Referer.
  • integrity: Hodnota pre hlavičku Integrity. Používa sa pre Subresource Integrity.
  • keepalive: Booleanová hodnota, ktorá určuje, či požiadavka má zostať aktívna po ukončení stránky (na odoslanie analytiky alebo správ).
  • signal: Inštancia AbortSignal na zrušenie požiadavky.
  • window: Objekt Window, s ktorým je požiadavka spojená (predvolene aktuálne okno).

Príklad použitia:

// Žiadosť GET
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Chyba:', error));

// Žiadosť POST s telom a hlavičkami
fetch('/api/products', {
  method: 'POST', // HTTP metóda
  headers: {
    'Content-Type': 'application/json', // Typ odosielaných dát
    'Authorization': 'Bearer your_token' // Príklad autorizačného hlavička
  },
  body: JSON.stringify({ name: 'Nový produkt', price: 100 }) // Telo požiadavky
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP chyba! status: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Úspech:', data))
  .catch(error => console.error('Chyba:', error));