Junior
Cosa accetta il metodo fetch?
sobes.tech AI
Risposta dell'AI
Il metodo fetch accetta un argomento obbligatorio — il percorso della richiesta (RequestInfo o URL) — e un argomento opzionale — un oggetto di configurazione (RequestInit).
Argomento obbligatorio (input) :
- Stringa: URL della risorsa.
- Oggetto
Request: Istanza della classeRequest, che fornisce una configurazione più flessibile della richiesta (intestazioni, metodo, ecc.).
Argomento opzionale (init) : Un oggetto con campi che descrivono la configurazione della richiesta. Alcuni campi comunemente usati:
method: Metodo HTTP della richiesta (GET,POST,PUT,DELETE,OPTIONS, ecc.).headers: Intestazioni della richiesta. Può essere un oggetto chiave-valore o un'istanza della classeHeaders.body: Corpo della richiesta (per metodi diversi daGEToHEAD). Può essere una stringa,ArrayBuffer,TypedArray,DataView,Blob,FormData,URLSearchParamsoReadableStream.mode: Modalità della richiesta (cors,no-cors,same-origin,navigate).credentials: Configurazione per l'invio delle credenziali (omit,same-origin,include).cache: Configurazione della cache (default,no-store,reload,no-cache,force-cache,only-if-cached).redirect: Come gestire i reindirizzamenti (follow,error,manual).referrer: Valore per l'intestazioneReferer.referrerPolicy: Politica di invio dell'intestazioneReferer.integrity: Valore per l'intestazioneIntegrity. Usato per l'integrità delle risorse sub-ressource.keepalive: Valore booleano che indica che la richiesta deve rimanere attiva dopo la chiusura della pagina (per inviare analisi o rapporti).signal: Istanza diAbortSignalper annullare la richiesta.window: Oggetto Window associato alla richiesta (di default, la finestra corrente).
Esempio di utilizzo:
// Richiesta GET
fetch('/api/users')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Errore:', error));
// Richiesta POST con corpo e intestazioni
fetch('/api/products', {
method: 'POST', // Metodo HTTP
headers: {
'Content-Type': 'application/json', // Tipo di dati inviati
'Authorization': 'Bearer your_token' // Esempio di intestazione di autorizzazione
},
body: JSON.stringify({ name: 'Nuovo prodotto', price: 100 }) // Corpo della richiesta
})
.then(response => {
if (!response.ok) {
throw new Error(`Errore HTTP! stato: ${response.status}`);
}
return response.json();
})
.then(data => console.log('Successo:', data))
.catch(error => console.error('Errore:', error));