Extraire RequestInit : dans le champ d’application, global

  • Rversion finale: Zurich
  • Mis à jour 31 juil. 2025
  • 9 minutes de lecture
  • L’API RequestInit fournit des options pour configurer une demande d’extraction.

    Vous pouvez passer un objet RequestInit dans le constructeur Request() ou directement dans l’appel de fonction fetch( ). Vous pouvez également construire une requête avec un appel RequestInit() et passer la requête à un appel fetch() avec un autre RequestInit(). Si vous faites cela lorsque la même option est définie aux deux endroits, alors la valeur transmise directement dans fetch() est utilisée.

    Cette API fait partie d’un ensemble d’API d’extraction , qui fournissent diverses actions pour extraire des ressources à partir de sites web externes. La collection complète d’API d’extraction comprend :

    Pour prendre en charge les actions d’extraction, la propriété système glide.hosts.allowlist permet de contrôler les hôtes auxquels une méthode d’extraction peut accéder. Il s’applique aux API HTTP comme RestMessageV2 et celles mentionnées ci-dessus. Pour plus d’informations sur glide.hosts.allowlist, reportez-vous à la section Available system properties.

    Extraire RequestInit : RequestInit

    Définissez des options pour configurer une demande d’extraction. Vous pouvez passer un objet RequestInit dans le constructeur Request() ou directement dans l’appel de fonction fetch( ).

    Propriétés RequestInit

    L’API RequestInit prend en charge plusieurs propriétés facultatives qui peuvent être utilisées pour configurer le comportement des requêtes HTTP. Ses propriétés incluent la méthode (méthode HTTP), les en-têtes (en-têtes de demande), le corps (données à envoyer), le mode (mode CORS), les informations d’identification (détails d’authentification), le cache (comportement du cache) et d’autres comme la redirection, le référent et l’intégrité. Ces options vous permettent d’affiner le comportement des demandes pour divers cas d’utilisation. Pour lire des explications plus détaillées sur chaque propriété, reportez-vous à la section https://developer.mozilla.org/en-US/docs/Web/API/RequestInit.

    Tableau 1. Propriétés RequestInit
    Nom de la propriété Description
    attribution de rapports Facultatif. Indique que vous souhaitez que la réponse de la demande puisse enregistrer une source d’attribution ou un déclencheur d’attribution basé sur JavaScript.
    attributionReporting est un objet contenant les propriétés suivantes :
    • eventSourceEligible : booléen. Si la valeur est définie sur vrai, la réponse de la demande est éligible pour enregistrer une source d’attribution. Si la valeur est définie sur faux, elle n’est pas éligible à l’enregistrement en tant que source d’attribution.
    • triggerEligible : booléen. Si la valeur est définie sur vrai, la réponse de la demande est éligible pour enregistrer un déclencheur d’attribution. Si la valeur est définie sur faux, elle n’est pas éligible à l’enregistrement en tant que déclencheur d’attribution.

    Type de données : objet

    body Facultatif. Le corps de la requête contient du contenu à envoyer au serveur, par exemple dans une requête POST ou PUT.
    Types acceptés :
    • Tampon de tableau
    • une chaîne
    • Objet blob
    • Vue des données
    • Fichier
    • FormData
    • Flux lisible
    • TypedArray
    • URLSearchParams
    browsingTopics Facultatif. Marqueur indiquant si les rubriques sélectionnées pour l’utilisateur actuel doivent être envoyées dans un en-tête Sec-Browsing-Topics avec la demande associée.
    Valeurs acceptées :
    • vrai : les rubriques sélectionnées pour l’utilisateur actuel doivent être envoyées dans un en-tête Sec-Browsing-Topics
    • false : les rubriques sélectionnées pour l’utilisateur actuel ne doivent pas être envoyées dans un en-tête Sec-Browsing-Topics.

    Type de données : booléennes

    cache Facultatif. Mode de cache à utiliser pour la demande.
    Valeurs acceptées :
    • par défaut : le navigateur recherche dans son cache HTTP une réponse correspondant à la requête.
    • force-cache : le navigateur cherche dans son cache HTTP une réponse correspondant à la requête.
    • no-cache : le navigateur cherche dans son cache HTTP une réponse correspondant à la requête.
    • no-store : le navigateur extrait la ressource du serveur distant sans d’abord regarder dans le cache, et ne mettra pas à jour le cache avec la ressource téléchargée.
    • only-if-cache : le navigateur recherche dans son cache HTTP une réponse correspondant à la requête.
    • recharger : le navigateur extrait la ressource du serveur distant sans d’abord regarder dans le cache, mais met ensuite à jour le cache avec la ressource téléchargée.

    Le mode uniquement si-mis en cache ne peut être utilisé que si le mode de la demande est d’origine identique. Les redirections mises en cache seront suivies si la propriété de redirection de la demande est suivre et que les redirections ne violent pas le mode de même origine .

    Type de données : chaîne

    informations d'identification Facultatif. Contrôle si le navigateur envoie ou non des informations d’identification avec la demande, ainsi que si les en-têtes de réponse Set-Cookie sont respectés. Les informations d’identification sont des cookies, des certificats clients TLS ou des en-têtes d’authentification contenant un nom d’utilisateur et un mot de passe.
    Valeurs acceptées :
    • Include : incluez toujours les informations d’identification, même pour les demandes d’origine croisée.
      Remarque :
      L’inclusion d’informations d’identification dans les demandes d’origine croisée peut rendre un site vulnérable aux attaques CSRF. Ainsi, même si les informations d’identification sont définies pour inclure, le serveur doit également accepter leur inclusion en incluant le contrôle d’accès Autoriser les informations d’identification dans sa réponse. De plus, dans cette situation, le serveur doit explicitement spécifier l’origine du client dans l’en-tête de réponse Access-Control-Allow-Origin (c’est-à-dire *n’est pas autorisé).
    • Omettre : n’envoyez jamais d’informations d’identification dans la demande et n’incluez jamais d’informations d’identification dans la réponse.
    • same-origin : envoyez et incluez uniquement des informations d’identification pour les demandes de même origine.

    Valeur par défaut : same-origin

    Type de données : chaîne

    en-têtes Facultatif. Tous les en-têtes à ajouter à votre demande, contenus dans un objet Headers ou un littéral d’objet dont les clés sont les noms des en-têtes et dont les valeurs sont les valeurs d’en-tête.

    De nombreux en-têtes sont définis automatiquement par le navigateur et ne peuvent pas être définis par un script ; ils sont appelés noms d’en-tête interdits.

    Si l’option de mode est définie sur no-cors, vous ne pouvez définir que les en-têtes de demande figurant sur la liste de sécurité CORS.

    Type de données : chaîne

    Intégrité Facultatif. Contient la valeur d’intégrité de sous-ressource de la demande. Cette vérification est effectuée lors de l’extraction de la ressource. Le navigateur calcule le hachage de la ressource extraite à l’aide de l’algorithme spécifié. Si le résultat ne correspond pas à la valeur spécifiée, le navigateur rejette la demande d’extraction avec une erreur réseau.
    Le format de cette option est <hash-algo>-<hash-source> où :
    • <hash-algo> : correspond à l’une des valeurs suivantes : sha256, sha384 ou sha512.
    • <hash-source> : est le codage Base64 du résultat du hachage de la ressource avec l’algorithme de hachage spécifié.

    La valeur par défaut est une chaîne vide.

    Type de données : chaîne

    keepalive Facultatif. Marqueur indiquant s’il faut abandonner la demande associée si la page à l’origine est déchargée avant que la demande ne soit terminée.

    La taille du corps des demandes keepalive est limitée à 64 kibioctets.

    Valeurs valides :
    • vrai : le navigateur n’abandonne pas la demande associée.
    • faux : abandonne la demande associée.

    Type de données : booléennes

    Valeur par défaut : false

    method Facultatif. La méthode de demande.

    Type de données : chaîne

    Valeur par défaut : GET

    Mode Facultatif. Définit le comportement d’origine croisée de la demande.
    Valeurs valides :
    • same-origin : interdit les demandes cross-origin. Si une demande de même origine est envoyée à une autre origine, il en résulte une erreur réseau.
    • cors : si la demande est d’origine croisée, elle utilisera le mécanisme de partage des ressources d’origine croisée (CORS). Seuls les en-têtes de réponse sécurisés par CORS sont exposés dans la réponse.
    • no-cors : désactive CORS pour les demandes d’origines croisées. Cette option est assortie des restrictions suivantes :
      • La méthode ne peut être que HEAD,GET ou POST.
      • Les en-têtes ne peuvent être que des en-têtes de demande sur la liste de sécurité CORS, avec la restriction supplémentaire que l’en-tête de plage n’est pas non plus autorisé. Cela s’applique également aux en-têtes ajoutés par les travailleurs de service.
      • La réponse est opaque, ce qui signifie que ses en-têtes et son corps ne sont pas disponibles pour JavaScript, et que son code d’état est toujours 0.
    • navigate : utilisé uniquement par la navigation HTML. Une demande de navigation est créée uniquement lors de la navigation entre les documents.

    Type de données : chaîne

    Valeur par défaut : cors

    Priorité Facultatif. Spécifie la priorité de la demande d’extraction par rapport à d’autres demandes du même type.
    Valeurs valides :
    • auto : aucune préférence utilisateur pour la priorité d’extraction. Il est utilisé si aucune valeur n’est définie ou si une valeur non valide est définie.
    • élevée : une demande d’extraction de priorité élevée par rapport à d’autres demandes du même type.
    • faible : une demande d’extraction de priorité faible par rapport à d’autres demandes du même type.

    Type de données : chaîne

    Par défaut : auto

    Redirection Facultatif. Détermine le comportement du navigateur dans le cas où le serveur répond avec un état de redirection.
    Valeurs acceptées :
    • follow : suivre automatiquement les redirections.
    • erreur : rejeter la promesse avec une erreur réseau lorsqu’un état de redirection est renvoyé.
    • manuel : renvoyer une réponse avec presque tous les champs filtrés, pour permettre à un agent de service de stocker la réponse et de la relire ultérieurement.

    Type de données : chaîne

    Par défaut : follow

    référant Facultatif. Chaîne spécifiant la valeur à utiliser pour l’en-tête Référent de la demande.
    Valeurs et types de données acceptés :
    • about :client : définissez l’en-tête Referrer sur la valeur par défaut pour le contexte de la demande (par exemple, l’URL de la page qui a fait la demande).
    • chaîne vide : omettez l’en-tête Référer .
    • URL relative ou absolue de même origine : définissez l’en-tête Référent sur la valeur donnée. Les URL relatives sont résolues par rapport à l’URL de la page qui a fait la demande.

    Valeur par défaut : about :client

    referrerPolicy Facultatif. Chaîne qui définit une politique pour l’en-tête Référer. La syntaxe et la sémantique de cette option sont exactement les mêmes que pour l’en-tête Referrer-Policy.

    Type de données : chaîne

    signal Facultatif. Un AbortSignal. Si cette option est définie, la demande peut être annulée en appelant abort() sur l’AbortController correspondant.

    Type de données : chaîne

    Tableau 2. Renvoie
    Type Description
    Aucun

    Passer les options dans fetch()

    Cet exemple montre comment passer les options de méthode, de corps et d’en-têtes directement dans la méthode fetch() :

    async function post() {
      const response = await fetch("https://example.org/post", {
        method: "POST",
        body: JSON.stringify({ username: "example" }),
        headers: {
          "Content-Type": "application/json",
        },
      });
    
      console.log(response.status);
    }

    Transmettez les options dans le constructeur Request()

    Cet exemple montre comment créer une requête, transmettre les options de méthode, de corps et d’en-têtes dans le constructeur et transmettre la requête dans fetch() :

    async function post() {
      const request = new Request("https://example.org/post", {
        method: "POST",
        body: JSON.stringify({ username: "example" }),
        headers: {
          "Content-Type": "application/json",
        },
      });
    
      const response = await fetch(request);
    
      console.log(response.status);
    }

    Transmettez des options dans Request() et fetch()

    Cet exemple montre comment créer un Request() et passer les options de méthode, de corps et d’en-têtes dans le constructeur. Le script transmet ensuite la requête dans fetch() avec les options body et referer.

    Dans ce cas, la demande sera envoyée avec les options suivantes :
    • méthode : « POST »
    • en-têtes : {"Content-Type » : « application/json"}
    • corps : '{"username » :"example2"}'
    • référent : «  »
    async function post() {
      const request = new Request("https://example.org/post", {
        method: "POST",
        headers: {
          "Content-Type": "application/json",
        },
        body: JSON.stringify({ username: "example1" }),
      });
    
      const response = await fetch(request, {
        body: JSON.stringify({ username: "example2" }),
        referrer: "",
      });
    
      console.log(response.status);
    }