Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. Document
  4. requestStorageAccessFor()

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

Document: requestStorageAccessFor() Methode

Experimentell:Dies ist eineexperimentelle Technologie
Überprüfen Sie dieBrowser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

DierequestStorageAccessFor()-Methode derDocument-Schnittstelle ermöglicht es Hauptwebseiten, Drittanbieter-Cookie-Zugang für eingebettete Inhalte anzufordern, die von einer anderen Website im gleichenverwandten Website-Set stammen. Sie gibt einPromise zurück, das aufgelöst wird, wenn der Zugriff gewährt wurde, und abgelehnt wird, wenn der Zugriff verweigert wurde.

Syntax

js
requestStorageAccessFor(requestedOrigin)

Parameter

requestedOrigin

Ein String, der die URL des Ursprungs darstellt, für den Sie Zugriff auf Drittanbieter-Cookies anfordern.

Rückgabewert

EinPromise, das mitundefined erfüllt wird, wenn der Zugriff auf Drittanbieter-Cookies gewährt wurde, und abgelehnt wird, wenn der Zugriff verweigert wurde.

requestStorageAccessFor()-Anfragen werden automatisch abgelehnt, es sei denn, der Hauptinhalt verarbeitet gerade eine Benutzerinteraktion wie Tippen oder Klicken (flüchtige Aktivierung), oder die Erlaubnis wurde bereits zuvor gewährt. Wenn die Erlaubnis nicht zuvor erteilt wurde, müssen sie innerhalb eines ereignisbasierten Nutzerinteraktions-Handlers ausgeführt werden. Das Verhalten der Benutzerinteraktion hängt vom Zustand des Versprechens ab:

  • Wenn das Versprechen aufgelöst wird (d.h. die Erlaubnis wurde erteilt), wurde die Benutzerinteraktion nicht verbraucht, sodass das Skript anschließend APIs aufrufen kann, die eine Benutzerinteraktion erfordern.
  • Wenn das Versprechen abgelehnt wird (d.h. die Erlaubnis wurde nicht erteilt), wurde die Benutzerinteraktion verbraucht, sodass das Skript nichts tun kann, was eine Interaktion erfordert. Dies verhindert, dass SkripterequestStorageAccessFor() erneut aufrufen, wenn die Erlaubnis verweigert wird.

Ausnahmen

InvalidStateErrorDOMException

Wird geworfen, wenn das aktuelleDocument noch nicht aktiv ist.

NotAllowedErrorDOMException

Wird geworfen, wenn:

  • Das Fenster des Dokuments keinsicherer Kontext ist.
  • Das Dokument nicht das Hauptdokument ist.
  • Das Dokument einennull-Ursprung hat.
  • Der angegebenerequestedOriginundurchsichtig ist.
  • Die Haupt- und eingebetteten Websites nicht im selbenverwandten Website-Set sind.
  • Das einbettende<iframe> sandkastenfähig ist und dasallow-storage-access-by-user-activation-Token nicht gesetzt ist.
  • Die Nutzung durch einestorage-accessPermissions Policy blockiert wird.
  • Die Nutzung durch die Berechtigungsanforderung des Benutzeragenten zur Nutzung der API abgelehnt wird.
TypeError

Wird geworfen, wennrequestedOrigin keine gültige URL ist.

Beschreibung

DierequestStorageAccessFor()-Methode adressiert Herausforderungen bei der Einführung der Storage Access API auf Hauptwebseiten, die standortübergreifende Bilder oder Skripte verwenden, die Cookies benötigen. Sie ist relevant für Benutzeragenten, die standardmäßig den Zugriff aufDrittanbieter-,unpartitionierte Cookies blockieren, um die Privatsphäre zu verbessern (z.B. um Tracking zu verhindern), und ist eine vorgeschlagene Erweiterung derStorage Access API.

requestStorageAccessFor() kann Zugriff auf Drittanbieter-Cookies für ressourcenübergreifende Inhalte aktivieren, die direkt in eine Hauptwebseite eingebettet sind und selbst keinen Speicherzugriff anfordern können, z.B.<img>-Elemente. Standotverwandte Inhalte, die in<iframe>s eingebettet sind und ihre eigene Logik und Ressourcen haben und Zugriff auf Drittanbieter-Cookies benötigen, sollten den Speicherzugriff überDocument.requestStorageAccess() anfordern.

Um zu überprüfen, ob die Erlaubnis zum Zugriff auf Drittanbieter-Cookies bereits überrequestStorageAccessFor() erteilt wurde, können SiePermissions.query() aufrufen, wobei Sie den Funktionsnamen „top-level-storage-access“ angeben. Dies unterscheidet sich vom Funktionsnamen, der für die reguläre MethodeDocument.requestStorageAccess() verwendet wird, der „storage-access“ lautet.

DerPermissions.query()-Aufruf muss die eingebettete Herkunft spezifizieren; zum Beispiel:

js
navigator.permissions.query({  name: "top-level-storage-access",  requestedOrigin: "https://www.example.com",});

Hinweis:Die Nutzung dieses Features kann durch einestorage-accessPermissions Policy blockiert werden, die auf Ihrem Server gesetzt ist (dieselbe, die den Rest der Storage Access API steuert). Zusätzlich muss das Dokument zusätzliche browser-spezifische Prüfungen wie Allowlisten, Sperrlisten, On-Device-Klassifikation, Benutzereinstellungen oder Anti-Clickjacking Heuristiken bestehen.

Beispiele

js
function rSAFor() {  if ("requestStorageAccessFor" in document) {    document.requestStorageAccessFor("https://example.com").then(      (res) => {        // Use storage access        doThingsWithCookies();      },      (err) => {        // Handle errors      },    );  }}

Nach einem erfolgreichen Aufruf vonrequestStorageAccessFor() werden standotverwandte Anfragen Cookies enthalten, wenn sieCORS /crossorigin enthalten, sodass Websites möglicherweise warten möchten, bevor sie eine Anfrage auslösen. Solche Anfragen müssen diecredentials: "include" Option verwenden und Ressourcen müssen dascrossorigin="use-credentials" Attribut enthalten.

Zum Beispiel:

js
function checkCookie() {  fetch("https://example.com/getcookies.json", {    method: "GET",    credentials: "include",  })    .then((response) => response.json())    .then((json) => {      // Do something    });}

Hinweis:SieheVerwendung der Storage Access API für ein vollständigeres Beispiel.

Spezifikationen

Specification
requestStorageAccessFor API
# dom-document-requeststorageaccessfor

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2026 Movatter.jp