Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Response : propriété bodyUsed

Baseline Widely available

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mars 2017.

Note : Cette fonctionnalité est disponible via les Web Workers.

La propriété en lecture seule bodyUsed de l'interface Response est un booléen qui indique si le corps a déjà été lu.

Valeur

Une valeur booléenne.

Exemples

Vérifier bodyUsed

Cet exemple illustre que la lecture du corps d'une réponse fait passer la valeur de bodyUsed de false à true.

L'exemple contient une image vide.

Lorsque le JavaScript de l'exemple s'exécute, nous récupérons une image et assignons la promesse retournée à une variable promesseReponse.

Quand l'utilisateur·ice clique sur « Utiliser la réponse », nous vérifions si la réponse a déjà été utilisée. Si c'est le cas, nous affichons un message. Sinon, nous lisons le corps de la réponse et l'utilisons pour fournir une valeur à l'attribut src de l'image.

HTML

html
<p>
  <button id="utiliser">Utiliser la réponse</button>
  <button id="reinitialiser">Réinitialiser</button>
</p>
<p><img id="mon-image" src="" width="150" /></p>
<pre id="journal"></pre>

JavaScript

js
const utiliserReponse = document.querySelector("#utiliser");
const reinitialiser = document.querySelector("#reinitialiser");
const monImage = document.querySelector("#mon-image");
const journal = document.querySelector("#journal");

const promesseReponse = fetch(
  "/shared-assets/images/examples/firefox-logo.svg",
);

utiliserReponse.addEventListener("click", async () => {
  const reponse = await promesseReponse;
  if (reponse.bodyUsed) {
    journal.textContent = "Le corps a déjà été utilisé !";
  } else {
    const resultat = await reponse.blob();
    const urlObjet = URL.createObjectURL(resultat);
    monImage.src = urlObjet;
  }
});

reinitialiser.addEventListener("click", () => {
  document.location.reload();
});

Résultat

Au départ, il n'y a pas de valeur pour l'image. Si vous cliquez une fois sur « Utiliser la réponse », alors bodyUsed vaut false, donc nous lisons la réponse et définissons l'image. Si vous cliquez à nouveau sur « Utiliser la réponse », alors bodyUsed vaut true et nous affichons le message.

Cliquez sur « Réinitialiser » pour recharger l'exemple et pouvoir réessayer.

Spécifications

Specification
Fetch
# ref-for-dom-body-bodyused①

Compatibilité des navigateurs

Voir aussi