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é redirected

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 octobre 2017.

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

La propriété en lecture seule redirected de l'interface Response indique si la réponse résulte d'une requête qui a été redirigée.

Note : Il n'est pas recommandé de vérifier redirected pour empêcher les redirections, car au moment où une réponse est reçue, la redirection a déjà eu lieu et vous avez peut-être envoyé la requête vers une destination non souhaitée, potentiellement en transmettant des informations sensibles. Il est préférable de filtrer lors de l'appel à fetch(). Voir l'exemple Refuser les redirections qui montre comment procéder.

Valeur

Une valeur booléenne qui vaut true si la réponse indique que la requête a été redirigée.

Exemples

Détecter les redirections

Pour savoir si la réponse provient d'une requête redirigée, il suffit de vérifier cet indicateur sur l'objet Response. Dans le code ci-dessous, un message textuel est inséré dans un élément lorsqu'une redirection a eu lieu lors de l'opération fetch. Notez cependant que ce n'est pas aussi sûr que de refuser explicitement les redirections si elles ne sont pas attendues, comme décrit dans Refuser les redirections ci-dessous.

La propriété url retourne l'URL finale après redirections.

js
fetch("super-image.jpg")
  .then((reponse) => {
    const elem = document.getElementById("warning-message-box");
    elem.textContent = reponse.redirected ? "Redirection inattendue" : "";
    // url finale obtenue après redirections
    console.log(reponse.url);
    return reponse.blob();
  })
  .then((imageBlob) => {
    const imgObjectURL = URL.createObjectURL(imageBlob);
    document.getElementById("img-element-id").src = imgObjectURL;
  });

Refuser les redirections

Vérifier redirected n'est pas une bonne méthode pour empêcher les redirections, car la redirection a déjà eu lieu. Il est préférable de définir le mode de redirection à "error" dans le paramètre options lors de l'appel à fetch(), comme ceci :

js
fetch("super-image.jpg", { redirect: "error" })
  .then((reponse) => reponse.blob())
  .then((imageBlob) => {
    const imgObjectURL = URL.createObjectURL(imageBlob);
    document.getElementById("img-element-id").src = imgObjectURL;
  });

Spécifications

Specification
Fetch
# ref-for-dom-response-redirected①

Compatibilité des navigateurs

Voir aussi