MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Questa traduzione è incompleta. Collabora alla traduzione di questo articolo dall’originale in lingua inglese.

This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for the proper prefixes to use in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the spec changes.

La Fetch API fornisce un'interfaccia per ottenere risorse (anche attraverso la rete). Sembrerá familiare a tutti coloro che hanno usato XMLHttpRequest, ma la nuova API fornisce un'insieme piú potente e flessibile di funzionalitá.

Concetti e uso

Fetch fornisce una definizione generica di oggetti Request e Response (e altri inclusi nelle richieste di rete). Questo permette loro di essere usati ovunque necessari, in futuro, sia servano per i service workers, Cache API e altri oggetti simili che usano o modificano richieste e risposte, o qualunque altro tipo di uso che richieda di generare le tue risposte via codice.

Esso fornisce anche una definizione per i concetti relativi, come CORS e la semantica degli header HTTP, supportando la loro separata definizione nel codice.

Per effettuare una richiesta e ottenere una risorsa, si usa il metodo GlobalFetch.fetch. Esso è implementato in piú interfacce (specificatamente WindowWorkerGlobalScope). Questo lo rende disponibile all'incirca in ogni contesto in cui si puó voler ottenere risorse.

Il metodo fetch() richiede un parametro obbligatorio, il percorso (path) alla risorsa che si vuole ottenere, e ritorna una promise che risolve la Response a quella richiesta, sia essa stata eseguita con successo oppure no. Si puó anche passare in via opzionale un oggetto init (per definire opzioni facoltative) come secondo parametro (per l'elenco completo delle opzioni visitare Request).

Non appena una Response è recuperata, vi è un certo numero di metodi disponibile allo scopo di definire cosa sia il corpo della risposta e come dovrebbe essere gestito (in dettaglio : Body.)

È possibile creare una richiesta e una risposta direttamente usando i costruttori delle classi Request() e Response(), ma non e' una pratica comune. Invece, e' piu' frequente che essi vengano creati come risultato delle altre azioni della API (ad esempio, FetchEvent.respondWith dei service workers.)

Note: Puoi trovare informazioni aggiuntive riguardo l'uso di fetch sulla pagina Using Fetch, e studiare i concetti sulla pagina Fetch basic concepts.

Fetch Interfaces

GlobalFetch
Contiene il metodo globale fetch() usato per ottenere una risorsa.
Headers
Rappresenta un header di richiesta/risposta, permettendo di interrogarlo ed eseguire azioni differenti in base ai risultati.
Request
Rappresenta una richiesta.
Response
Rappresenta una risposta a una richiesta.

Fetch mixin

Body
Fornisce metodi relativi al corpo di una richiesta/risposta permettendo di dichiarare quale sia il tipo di contenuto e come dovrebbe essere gestito.

Specifiche

Specifiche Stato Commento
Fetch Living Standard Definizione di cui sopra

Compatibilitá coi Browsers

Feature Chrome Edge Firefox (Gecko) IE Opera Safari (WebKit)
Supporto base 42 14 39 (39)
34[1]
52 (52)[2]
No support 29
28[1]
10.1
Streaming del body della risposta 43 14 ? No support ? No support
Feature Android Android Webview Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Supporto base No support 42 (Yes) (Yes) No support No support 10.1 42
Streaming del body della risposta No support 43 (Yes) (Yes) No support ? No support 43

[1] Questa API è implementata dietro una preferenza.

[2] Per le versioni di Firefox precedenti la 52, get() ottiene solamente il primo valore nell'header specificato, mentre getAll() ottiene tutti i valori. Dalla versione 52 in avanti, get() ottiene tutti i valori e getAll() è stato eliminato.

Guarda anche

Tag del documento e collaboratori

 Hanno collaborato alla realizzazione di questa pagina: AlessandroSanino1994
 Ultima modifica di: AlessandroSanino1994,