Request

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2017.

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 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 FetchEvent.request.

Constructeur

Request()

Crée un nouvel objet Request.

Propriétés

Request.cache Lecture seule

Contient le mode de cache de la demande (par exemple, default, reload, no-cache).

Request.context Lecture seule Obsolète

Contient le contexte de la demande (par exemple, audio, image, iframe, etc.)

Request.credentials Lecture seule

Contient les informations d'identification de la demande (par exemple, omit, same-origin, include). La valeur par défaut est same-origin.

Request.destination Lecture seule

Renvoie une chaîne de l'énumération RequestDestination décrivant la destination de la requête. Il s'agit d'une chaîne indiquant le type de contenu demandé.

Request.headers Lecture seule

Contient l'objet Headers associé de la requête.

Request.integrity Lecture seule

Contient la valeur d'intégrité de la sous-ressource de la demande (par exemple, sha256-BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=).

Request.method Lecture seule

Contient la méthode de la requête (GET, POST, etc).

Request.mode Lecture seule

Contient le mode de la demande (par exemple, cors, no-cors, same-origin, navigate.)

Request.redirect Lecture seule

Contient le mode de gestion des redirections. Il peut s'agir d'un follow, error, ou d'un manual.

Request.referrer Lecture seule

Contient le référent de la demande (par exemple, client).

Request.referrerPolicy Lecture seule

Contient la politique de référent de la demande (par exemple, no-referrer).

Request.url Lecture seule

Contient l'URL de la demande.

Request implémente Body, donc il hérite également des propriétés suivantes:

body Lecture seule

Un getter simple utilisé pour exposer un ReadableStream du contenu du corps.

bodyUsed Lecture seule

Stocke un Boolean qui déclare si le corps a déjà été utilisé dans une réponse.

Méthodes

Request.clone()

Crée une copie de l'objet Request actuel.

Request implémente Body, donc il dispose également des méthodes suivantes:

Body.arrayBuffer()

Renvoie une promesse qui se résout avec une représentation ArrayBuffer du corps de la requête.

Body.blob()

Renvoie une promesse qui se résout avec une représentation Blob du corps de la requête.

Body.formData()

Renvoie une promesse qui se résout avec une représentation FormData du corps de la requếte.

Body.json()

Renvoie une promesse qui se résout avec une représentation JSON du corps de la requête.

Body.text()

Renvoie une promesse qui se résout avec une représentation USVString (texte) du coprs de la requête.

Note : Les fonctions Body ne peuvent être exécutées qu'une seule fois; les appels suivants seront résolus avec des chaînes vides / ArrayBuffers.

Exemples

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:

js
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 fetch(), par exemple:

js
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:

js
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 Blob, BufferSource, FormData, URLSearchParams, USVString ou 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 fetch(), par exemple et obtenir la réponse:

js
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écifications

Specification
Fetch Standard
# request-class

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi