Sobes.tech
Junior

Ce acceptă metoda fetch?

sobes.tech AI

Răspuns de la AI

Metoda fetch acceptă un argument obligatoriu — calea către solicitare (RequestInfo sau URL) — și un argument opțional — un obiect de configurare (RequestInit).

Argument obligatoriu (input) :

  • Șir de caractere: URL-ul resursei.
  • Obiect Request: Instanță a clasei Request, care oferă o configurare mai flexibilă a solicitării (anteturi, metodă etc.).

Argument opțional (init) : Un obiect cu câmpuri care descriu configurarea solicitării. Unele câmpuri frecvent utilizate:

  • method: Metoda HTTP a solicitării (GET, POST, PUT, DELETE, OPTIONS etc.).
  • headers: Anteturi ale solicitării. Poate fi un obiect cheie-valoare sau o instanță a clasei Headers.
  • body: Corpul solicitării (pentru metode diferite de GET sau HEAD). Poate fi un șir de caractere, ArrayBuffer, TypedArray, DataView, Blob, FormData, URLSearchParams sau ReadableStream.
  • mode: Modul solicitării (cors, no-cors, same-origin, navigate).
  • credentials: Configurare pentru trimiterea datelor de autentificare (omit, same-origin, include).
  • cache: Configurare cache (default, no-store, reload, no-cache, force-cache, only-if-cached).
  • redirect: Cum să gestioneze redirecționările (follow, error, manual).
  • referrer: Valoare pentru antetul Referer.
  • referrerPolicy: Politica de transmitere a antetului Referer.
  • integrity: Valoare pentru antetul Integrity. Se folosește pentru integritatea resurselor sub-ressurselor.
  • keepalive: Valoare boolean care indică dacă solicitarea trebuie să rămână activă după închiderea paginii (de exemplu, pentru trimiterea de analize sau rapoarte).
  • signal: Instanță de AbortSignal pentru anularea solicitării.
  • window: Obiectul Window asociat solicitării (implicit, fereastra curentă).

Exemplu de utilizare:

// Solicitare GET
fetch('/api/users')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Eroare:', error));

// Solicitare POST cu corp și anteturi
fetch('/api/products', {
  method: 'POST', // Metoda HTTP
  headers: {
    'Content-Type': 'application/json', // Tipul datelor trimise
    'Authorization': 'Bearer your_token' // Exemplu de antet de autorizare
  },
  body: JSON.stringify({ name: 'Noul produs', price: 100 }) // Corpul solicitării
})
  .then(response => {
    if (!response.ok) {
      throw new Error(`Eroare HTTP! status: ${response.status}`);
    }
    return response.json();
  })
  .then(data => console.log('Succes:', data))
  .catch(error => console.error('Eroare:', error));