Extraire RequestInit : incluse dans le périmètre, globale

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 9 minutes de lecture
  • L’API RequestInit fournit des options permettant de 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. Elle s’applique aux API HTTP telles que 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 transmettre 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é, consultez https://developer.mozilla.org/en-US/docs/Web/API/RequestInit.

    Tableau 1. Propriétés RequestInit
    Nom de la propriété Description
    attributionReporting 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 à l’enregistrement d’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 demande 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
    • Données de formulaire
    • 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
    • faux : 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 recherche dans son cache HTTP une réponse correspondant à la requête.
    • no-cache : le navigateur recherche 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-cached : le navigateur recherche dans son cache HTTP une réponse correspondant à la requête.
    • reload : 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 « only if-cached » ne peut être utilisé que si le mode de la demande est de même origine. Les redirections mises en cache seront suivies si la propriété de redirection de la demande est follow 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 des informations d’identification dans les demandes d’origines croisées 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 les informations d’identification Access-Control-Allow-Credentials 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.
    • Même origine : envoyer et inclure uniquement les informations d’identification pour les demandes de même origine.

    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 ; on les appelle des 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 sur 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 option est activée lorsque la ressource est extraite. 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 l’encodage 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 qui l’a initiée 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. Méthode de demande.

    Type de données : chaîne

    Par défaut : GET

    Mode Facultatif. Définit le comportement d’origine croisée de la demande.
    Valeurs valides :
    • same-origin : interdit les demandes d’origine croisée. Si une demande de même origine est envoyée à une origine différente, 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 sur la liste de sécurité de CORS sont exposés dans la réponse.
    • no-cors : désactive CORS pour les demandes d’origine croisée. 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 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 à tous les 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

    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 : demande d’extraction de priorité élevée par rapport à d’autres demandes du même type.
    • faible : 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 : suivez automatiquement les redirections.
    • error : Rejeter la promesse avec une erreur réseau lorsqu’un statut 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 : suivre

    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 Référent 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 du 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
    Néant

    Transmettre les options dans fetch()

    Cet exemple montre comment transmettre 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);
    }

    Transmettre les options dans le constructeur Request()

    Cet exemple montre comment créer une requête et transmettre les options de méthode, de corps et d’en-têtes au 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 les 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);
    }