Sobes.tech
Junior

Co přijímá metoda fetch?

sobes.tech AI

Odpověď od AI

Metoda fetch přijímá jeden povinný argument — cestu k požadavku (RequestInfo nebo URL) — a jeden volitelný argument — konfigurační objekt (RequestInit).

Povinný argument (input) :

  • Řetězec: URL zdroje.
  • Objekt Request: Instanci třídy Request, která umožňuje flexibilnější konfiguraci požadavku (hlavičky, metoda atd.).

Volitelný argument (init) : Objekt s poli, která popisují konfiguraci požadavku. Některá často používaná pole:

  • method: Metoda HTTP požadavku (GET, POST, PUT, DELETE, OPTIONS atd.).
  • headers: Hlavičky požadavku. Může být objektem klíč-hodnota nebo instancí třídy Headers.
  • body: Tělo požadavku (pro metody odlišné od GET nebo HEAD). Může být řetězcem, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams nebo ReadableStream.
  • mode: Režim požadavku (cors, no-cors, same-origin, navigate).
  • credentials: Nastavení pro odeslání přihlašovacích údajů (omit, same-origin, include).
  • cache: Nastavení cache (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Jak zacházet s přesměrováními (follow, error, manual).
  • referrer: Hodnota pro hlavičku Referer.
  • referrerPolicy: Politika přenosu hlavičky Referer.
  • integrity: Hodnota pro hlavičku Integrity. Používá se pro Subresource Integrity.
  • keepalive: Booleanová hodnota, která udává, že požadavek by měl zůstat aktivní po uzavření stránky (například pro odesílání analýz nebo zpráv).
  • signal: Instanci AbortSignal pro zrušení požadavku.
  • window: Objekt Window, s nímž je požadavek spojen (výchozí je aktuální okno).

Příklad použití:

// Požadavek GET
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Chyba:', error));

// Požadavek POST s tělem a hlavičkami
fetch('/api/products', {
  method: 'POST', // HTTP metoda
  headers: {
    'Content-Type': 'application/json', // Typ odesílaných dat
    'Authorization': 'Bearer your_token' // Příklad hlavičky autorizace
  },
  body: JSON.stringify({ name: 'Nový produkt', price: 100 }) // Tělo požadavku
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP chyba! stav: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Úspěch:', data))
  .catch(error => console.error('Chyba:', error));