RequestInit abrufen : Bereichsbezogen, global

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 7 Minuten Lesedauer
  • Die RequestInit -API bietet Optionen zum Konfigurieren einer Abrufanforderung.

    Sie können ein RequestInit-Objekt an den Request() -Konstruktor oder direkt an den Funktionsaufruf fetch() übergeben. Sie können eine Anforderung auch mit einem RequestInit()- Aufruf erstellen und die Anforderung zusammen mit einem anderen RequestInit() -Aufruf an einen fetch()-Aufruf übergeben. Wenn Sie dies tun, wenn an beiden Stellen dieselbe Option festgelegt ist, wird der direkt an fetch() übergebene Wert verwendet.

    Diese API ist Teil einer Reihe von Abruf -APIs, die verschiedene Aktionen zum Abrufen von Ressourcen von externen Websites bereitstellen. Die vollständige API-Sammlung zum Abrufen enthält:

    Zur Unterstützung von Abrufaktionen ermöglicht die Systemeigenschaft glide.hosts.allowlistdie Steuerung, auf welche Hosts eine Abrufmethode zugreifen kann. Sie gilt für HTTP-APIs wie RestMessageV2 und die oben genannten. Weitere Informationen zu glide.hosts.allowlistfinden Sie unter Available system properties.

    RequestInit abrufen: RequestInit

    Legen Sie Optionen fest, um eine Abrufanforderung zu konfigurieren. Sie können ein RequestInit-Objekt an den Request() -Konstruktor oder direkt an den Funktionsaufruf fetch() übergeben.

    RequestInit-Eigenschaften

    Die RequestInit- API unterstützt mehrere optionale Eigenschaften, die zum Konfigurieren des Verhaltens von HTTP-Anforderungen verwendet werden können. Zu seinen Eigenschaften gehören Methode (HTTP-Methode), Header (Anforderungsheader), Textkörper (zu sendende Daten), Modus (CORS-Modus), Anmeldeinformationen (Authentifizierungsdetails), Cache (Cache-Verhalten) und andere wie Redirect, Referrerund Integrität. Mit diesen Optionen können Sie das Anforderungsverhalten für verschiedene Anwendungsfälle optimieren. Ausführlichere Erklärungen zu den einzelnen Eigenschaften finden Sie unter https://developer.mozilla.org/en-US/docs/Web/API/RequestInit.

    Tabelle : 1. RequestInit-Eigenschaften
    Eigenschaftsname Beschreibung
    AttributionReporting Optional. Gibt an, dass die Antwort der Anforderung eine JavaScript-basierte Attributionsquelle oder einen Attributionsauslöser registrieren kann.
    attributionReporting ist ein Objekt mit den folgenden Eigenschaften:
    • eventSourceEligible: Boolescher Wert. Bei Festlegung auf wahrist die Antwort der Anforderung berechtigt, eine Attributionsquelle zu registrieren. Wenn der Wert auf „false“festgelegt ist, ist er nicht für die Registrierung als Attributionsquelle geeignet.
    • triggerEligible: Boolesch. Bei Festlegung auf wahrist die Antwort der Anforderung berechtigt, einen Attributionsauslöser zu registrieren. Wenn der Wert auf „false“festgelegt ist, ist er nicht für die Registrierung als Attributionsauslöser geeignet.

    Datentyp: Objekt

    body Optional. Der Anforderungstext enthält Inhalte, die an den Server gesendet werden sollen, z. B. in einer POST- oder PUT-Anforderung.
    Akzeptierte Typen:
    • ArrayPuffer
    • eine Zeichenfolge
    • Blob
    • DataView
    • Datei
    • FormData
    • ReadableStream
    • TypedArray
    • URLSearchParameter
    durchsuchenThemen Optional. Kennzeichnung, die angibt, ob die ausgewählten Themen für den aktuellen Anwender in einem Header „Sec-Browsing-Topics“ mit der zugehörigen Anforderung gesendet werden sollen.
    Akzeptierte Werte:
    • „wahr“: Ausgewählte Themen für den aktuellen Anwender sollten in einem Header „Sec-Browsing-Topics“ gesendet werden
    • „falsch“: Ausgewählte Themen für den aktuellen Anwender dürfen nicht in einem Header „Sec-Browsing-Topics“ gesendet werden.

    Datentyp: Boolesch

    Cache Optional. Der für die Anforderung zu verwendende Cache-Modus.
    Akzeptierte Werte:
    • Standard: Der Browser sucht in seinem HTTP-Cache nach einer Antwort, die der Anforderung entspricht.
    • force-cache: Der Browser sucht in seinem HTTP-Cache nach einer Antwort, die der Anforderung entspricht.
    • no-cache: Der Browser sucht in seinem HTTP-Cache nach einer Antwort, die der Anforderung entspricht.
    • no-store: Der Browser ruft die Ressource vom Remote-Server ab, ohne zuerst im Cache zu suchen, und aktualisiert den Cache nicht mit der heruntergeladenen Ressource.
    • only-if-cached: Der Browser sucht in seinem HTTP-Cache nach einer Antwort, die der Anforderung entspricht.
    • reload: Der Browser ruft die Ressource vom Remote-Server ab, ohne zuerst im Cache zu suchen, aktualisiert dann aber den Cache mit der heruntergeladenen Ressource.

    Der Modus „Nur-bei-Zwischenspeicherung“ kann nur verwendet werden, wenn der Modus der Anforderung „same-origin“ist. Zwischengespeicherte Umleitungen werden verfolgt, wenn die Umleitungseigenschaft der Anforderung „follow“ lautet und die Umleitungen den „Same-Origin -Modus“ nicht verletzen.

    Datentyp: Zeichenfolge

    Anmeldeinformationen Optional. Steuert, ob der Browser Anmeldeinformationen mit der Anforderung sendet und ob Set-Cookie-Antwortheader berücksichtigt werden. Anmeldeinformationen sind Cookies, TLS-Client-Zertifikate oder Authentifizierungsheader, die einen Anwendernamen und ein Passwort enthalten.
    Akzeptierte Werte:
    • Include: Fügt immer Anmeldeinformationen ein, auch für ursprungsübergreifende Anforderungen.
      Hinweis:
      Das Einbinden von Anmeldeinformationen in ursprungsübergreifende Anforderungen kann eine Site angreifbar für CSRF-Angriffe machen. Selbst wenn also Anmeldeinformationen auf das Einbeziehenvon festgelegt sind, muss der Server auch der Einbeziehung zustimmen, indem er in seiner Antwort die Option Access-Control-Allow-Credentials einbezieht. Darüber hinaus muss der Server in dieser Situation explizit den Ursprung des Clients im Header der Antwort „Access-Control-Allow-Origin“ angeben (d. h. *ist nicht zulässig).
    • auslassen: Senden Sie niemals Anmeldeinformationen in der Anforderung, oder fügen Sie Anmeldeinformationen in die Antwort ein.
    • same-origin: Es werden nur Anmeldeinformationen für Anforderungen gleicher Herkunft gesendet und eingeschlossen.

    Standard:Same-Origin

    Datentyp: Zeichenfolge

    headers Optional. Alle Header, die Ihrer Anforderung hinzugefügt werden sollen und die in einem Header-Objekt oder einem Objektliteral enthalten sind, dessen Schlüssel die Namen der Header sind und dessen Werte die Headerwerte sind.

    Viele Header werden automatisch vom Browser festgelegt und können nicht von einem Skript festgelegt werden. diese werden als unzulässige Headernamen bezeichnet.

    Wenn die Option „mode“ auf „no-cors“festgelegt ist, können Sie nur Anforderungsheader auf der CORS-Sicherheitsliste festlegen.

    Datentyp: Zeichenfolge

    Integrität Optional. Enthält den Integritätswert der Unterressourcen der Anforderung. Dies wird aktiviert, wenn die Ressource abgerufen wird. Der Browser berechnet den Hash der abgerufenen Ressource mit dem angegebenen Algorithmus. Wenn das Ergebnis nicht mit dem angegebenen Wert übereinstimmt, lehnt der Browser die Abrufanforderung mit einem Netzwerkfehler ab.
    Das Format dieser Option ist<hash-algo> - <hash-source> wobei:
    • <hash-algo>: ist einer der folgenden Werte: sha256, sha384 oder sha512.
    • <hash-source>: ist die Base64-Codierung des Ergebnisses des Hashings der Ressource mit dem angegebenen Hash-Algorithmus.

    Der Standardwert ist eine leere Zeichenfolge.

    Datentyp: Zeichenfolge

    Keepalive Optional. Kennzeichnung, die angibt, ob die zugeordnete Anforderung abgebrochen werden soll, wenn die Seite, von der sie initiiert wurde, entladen wird, bevor die Anforderung abgeschlossen ist.

    Die Textgröße für Keepalive -Anforderungen ist auf 64 KB beschränkt.

    Gültige Werte:
    • „wahr“: Der Browser bricht die zugehörige Anforderung nicht ab.
    • „falsch“: Bricht die zugeordnete Anforderung ab.

    Datentyp: Boolesch

    Standardwert: false

    method Optional. Die Anforderungsmethode.

    Datentyp: Zeichenfolge

    Standard: GET

    Modus Optional. Legt das ursprungsübergreifende Verhalten für die Anforderung fest.
    Gültige Werte:
    • same-origin: Verbietet ursprungsübergreifende Anforderungen. Wenn eine Anforderung mit demselben Ursprung an einen anderen Ursprung gesendet wird, führt dies zu einem Netzwerkfehler.
    • cors: Wenn die Anforderung ursprungsübergreifend ist, wird der CORS-Mechanismus (Cross-Origin Resource Sharing) verwendet. Nur in der CORS-Sicherheitsliste enthaltene Antwortheader sind in der Antwort verfügbar.
    • no-cors: Deaktiviert CORS für ursprungsübergreifende Anforderungen. Diese Option ist mit den folgenden Einschränkungen verbunden:
      • Die Methode darf nur eine der folgenden Optionen sein: HEAD, GET oder POST.
      • Die Header dürfen nur Anforderungsheader auf der CORS-Sicherheitsliste sein, mit der zusätzlichen Einschränkung, dass der Bereichsheader ebenfalls nicht zulässig ist. Dies gilt auch für alle Header, die von Servicemitarbeitern hinzugefügt wurden.
      • Die Antwort ist undurchsichtig, was bedeutet, dass Header und Text nicht für JavaScript verfügbar sind und der Statuscode immer 0lautet.
    • navigieren: Wird nur für die HTML-Navigation verwendet. Eine Navigationsanforderung wird nur beim Navigieren zwischen Dokumenten erstellt.

    Datentyp: Zeichenfolge

    Standard: cors

    Priorität Optional. Gibt die Priorität der Abrufanforderung im Verhältnis zu anderen Anforderungen des gleichen Typs an.
    Gültige Werte:
    • auto: Keine Anwendereinstellung für die Abrufpriorität. Sie wird verwendet, wenn kein Wert festgelegt oder ein ungültiger Wert festgelegt ist.
    • hoch: Eine Abrufanforderung mit hoher Priorität im Vergleich zu anderen Anforderungen des gleichen Typs.
    • niedrig: Eine Abrufanforderung mit niedriger Priorität im Vergleich zu anderen Anforderungen des gleichen Typs.

    Datentyp: Zeichenfolge

    Standard: auto

    umleiten Optional. Bestimmt das Verhalten des Browsers, wenn der Server mit einem Umleitungsstatus antwortet.
    Akzeptierte Werte:
    • Follow: Folgen Sie Umleitungen automatisch.
    • Fehler: Ablehnen der Zusage mit einem Netzwerkfehler, wenn ein Umleitungsstatus zurückgegeben wird.
    • Manuell: Geben Sie eine Antwort mit fast allen gefilterten Feldern zurück, damit ein Servicemitarbeiter die Antwort speichern und später wiedergeben kann.

    Datentyp: Zeichenfolge

    Standard: Folgen

    Referrer Optional. Eine Zeichenfolge, die den Wert angibt, der für den Referrer-Header der Anforderung verwendet werden soll.
    Akzeptierte Werte und Datentypen:
    • ungefähr:client: Legen Sie den Referrer- Header auf den Standardwert für den Kontext der Anforderung fest (z. B. die URL der Seite, von der die Anforderung gesendet wurde).
    • leere Zeichenfolge: Referrer -Header auslassen.
    • relative oder absolute URL mit gleichem Ursprung: Legen Sie den Referrer -Header auf den angegebenen Wert fest. Relative URLs werden relativ zur URL der Seite aufgelöst, von der die Anforderung stammt.

    Standard: über:Client

    ReferrerPolicy Optional. Eine Zeichenfolge, die eine Richtlinie für den Referrer-Header festlegt. Die Syntax und Semantik dieser Option entsprechen genau dem Header Referrer-Policy.

    Datentyp: Zeichenfolge

    signal Optional. Ein AbortSignal. Wenn diese Option festgelegt ist, kann die Anforderung durch einen Aufruf von abort() auf dem entsprechenden AbortControllerabgebrochen werden.

    Datentyp: Zeichenfolge

    Tabelle : 2. Rückgaben
    Typ Beschreibung
    Keine

    Optionen an fetch() übergeben

    Dieses Beispiel zeigt, wie die Optionen für Methode, Text und Header direkt an die Methode fetch() übergeben werden:

    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);
    }

    Übergeben Sie Optionen an den Request()-Konstrukteur

    Dieses Beispiel zeigt, wie Sie eine Anforderung erstellen, die Optionen für Methode, Text und Header an den Konstruktor übergeben und die Anforderung an fetch()übergeben:

    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);
    }

    Übergeben Sie Optionen an Request () und Fetch ().

    Dieses Beispiel zeigt, wie Sie eine Anforderung () erstellen und die Optionen für Methode, Text und Header an den Konstruktor übergeben. Das Skript übergibt die Anforderung dann zusammen mit den Optionen Textkörper und Referrer an fetch().

    In diesem Fall wird die Anforderung mit den folgenden Optionen gesendet:
    • Methode: „POST“
    • Header: {"Content-Type": "application/json"}
    • Text: '{"username":"example2"}'
    • Referrer: „“
    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);
    }