--- title: Request slug: Web/API/Request tags: - API - Experimental - Fetch - Fetch API - Interface - Reference - TopicStub - request translation_of: Web/API/Request ---
L'interface Request
de l'API Fetch représente une demande de ressource.
Vous pouvez créer un nouvel objet Request
en utilisant le constructeur {{domxref("Request.Request","Request()")}}, mais vous êtes plus susceptible de rencontrer un objet Request
renvoyé à la suite d'une autre opération d'API, telle en tant que service worker {{domxref("FetchEvent.request")}}.
Request
.default
, reload
, no-cache
).audio
, image
, iframe
, etc.)omit
, same-origin
, include
). La valeur par défaut est same-origin
.sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=
).GET
, POST
, etc).cors
, no-cors
, same-origin
, navigate
.)follow
, error
, ou d'un manual
.client
).no-referrer
).Request
implémente {{domxref("Body")}}, donc il hérite également des propriétés suivantes:
Request
actuel.Request
implémente {{domxref("Body")}}, donc il dispose également des méthodes suivantes:
Note: Les fonctions {{domxref("Body")}} ne peuvent être exécutées qu'une seule fois; les appels suivants seront résolus avec des chaînes vides / ArrayBuffers.
Dans l'extrait de code suivant, nous créons une nouvelle requête à l'aide du constructeur Request()
(pour un fichier image dans le même répertoire que le script), puis renvoyons certaines valeurs de propriété de la requête:
const request = new Request('https://www.mozilla.org/favicon.ico'); const URL = request.url; const method = request.method; const credentials = request.credentials;
Vous pouvez ensuite récupérer cette requête en passant l'objet Request
en tant que paramètre à un appel {{domxref("WindowOrWorkerGlobalScope.fetch()")}}, par exemple:
fetch(request) .then(response => response.blob()) .then(blob => { image.src = URL.createObjectURL(blob); });
Dans l'extrait de code suivant, nous créons une nouvelle requête à l'aide du constructeur Request()
avec des données initiales et du contenu du body pour une requête api qui nécessite une charge utile de body:
const request = new Request('https://example.com', {method: 'POST', body: '{"foo": "bar"}'}); const URL = request.url; const method = request.method; const credentials = request.credentials; const bodyUsed = request.bodyUsed;
Note: Le type de body ne peut être qu'un {{domxref("Blob")}}, {{domxref("BufferSource")}}, {{domxref("FormData")}}, {{domxref("URLSearchParams")}}, {{domxref("USVString")}} ou {{domxref("ReadableStream")}} donc pour ajouter un objet JSON à la charge utile, vous devez stringify cet objet.
Vous pouvez ensuite récupérer cette demande d'API en passant l'objet Request
en tant que paramètre à un appel {{domxref("WindowOrWorkerGlobalScope.fetch()")}}, par exemple et obtenir la réponse:
fetch(request) .then(response => { if (response.status === 200) { return response.json(); } else { throw new Error('Something went wrong on api server!'); } }) .then(response => { console.debug(response); // ... }).catch(error => { console.error(error); });
Spécification | Statut | Commentaire |
---|---|---|
{{SpecName('Fetch','#request-class','Request')}} | {{Spec2('Fetch')}} | Définition initiale |
{{Compat("api.Request")}}