Sobes.tech
Junior

Šta prihvata metoda fetch?

sobes.tech АИ

Одговор од АИ

Metod fetch prima jedan obavezan argument — putanju do zahteva (RequestInfo ili URL) — i jedan opcioni argument — objekat sa podešavanjima (RequestInit).

Obavezan argument (input):

  • Niz: URL resursa.
  • Objekat Request: Instanca klase Request, koja pruža fleksibilnije podešavanje zahteva (zaglavlja, metoda itd.).

Opcioni argument (init): Objekat sa poljima koja opisuju podešavanja zahteva. Neki često korišćeni atributi:

  • method: HTTP metoda zahteva (GET, POST, PUT, DELETE, OPTIONS itd.).
  • headers: Zaglavlja zahteva. Može biti objekat ključ-vrednost ili instanca klase Headers.
  • body: Telo zahteva (za metode različite od GET ili HEAD). Može biti niz, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams ili ReadableStream.
  • mode: Režim zahteva (cors, no-cors, same-origin, navigate).
  • credentials: Podešavanje za slanje podataka za autentifikaciju (omit, same-origin, include).
  • cache: Podešavanje keširanja (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Kako da se obrađuju preusmeravanja (follow, error, manual).
  • referrer: Vrednost za zaglavlje Referer.
  • referrerPolicy: Politika prenosa zaglavlja Referer.
  • integrity: Vrednost za zaglavlje Integrity. Koristi se za Subresource Integrity.
  • keepalive: Buleova vrednost koja ukazuje da zahtev treba ostati aktivan nakon završetka stranice (za slanje analitike ili izveštaja).
  • signal: Instanca AbortSignal za otkazivanje zahteva.
  • window: Objekt Window sa kojim je zahtev povezan (po defaultu trenutni prozor).

Primer upotrebe:

// GET zahtev
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Greška:', error));

// POST zahtev sa telom i zaglavljima
fetch('/api/products', {
  method: 'POST', // HTTP metoda
  headers: {
    'Content-Type': 'application/json', // Tip podataka
    'Authorization': 'Bearer your_token' // Primer autorizacionog zaglavlja
  },
  body: JSON.stringify({ name: 'Novi proizvod', price: 100 }) // Telo zahteva
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`HTTP greška! status: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Uspeh:', data))
  .catch(error => console.error('Greška:', error));