Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Service-Worker-Allowed header
Der HTTPService-Worker-AllowedResponse-Header wird verwendet, um die Pfadeinschränkung für den Standard-scope eines Service Workers zu erweitern.
Standardmäßig ist derscope für eine Registrierung eines Service Workers das Verzeichnis, in dem sich das Service-Worker-Skript befindet. Zum Beispiel kann das Skriptsw.js, das sich in/js/sw.js befindet, standardmäßig nur URLs unter/js/ kontrollieren. Server können denService-Worker-Allowed-Header nutzen, um einem Service Worker zu erlauben, URLs außerhalb seines eigenen Verzeichnisses zu kontrollieren.
Ein Service Worker fängt alle Netzwerk-Anfragen innerhalb seines Scopes ab, daher sollten Sie vermeiden, zu breite Scopes zu verwenden, es sei denn, es ist notwendig.
| Header-Typ | Response-Header |
|---|
In diesem Artikel
Syntax
Service-Worker-Allowed: <scope>Direktiven
<scope>Ein String, der eine URL repräsentiert und den Registrierungs-Scope eines Service Workers definiert; also, welche Reichweite von URLs ein Service Worker kontrollieren kann.
Beispiele
>Verwendung von Service-Worker-Allowed, um den Service-Worker-Scope zu erweitern
Das folgende JavaScript-Beispiel ist inexample.com/product/index.html enthalten und versucht, einen Service Worker zuregistrieren mit einem Scope, der für alle Ressourcen unterexample.com/ gilt.
navigator.serviceWorker.register("./sw.js", { scope: "/" }).then( (registration) => { console.log("Install succeeded, scoped to '/'", registration); }, (error) => { console.error(`Service worker registration failed: ${error}`); },);Die HTTP-Antwort auf die Anfrage für die Skriptressource des Service Workers (./sw.js) beinhaltet denService-Worker-Allowed-Header, gesetzt auf/:
HTTP/1.1 200 OKDate: Mon, 16 Dec 2024 14:37:20 GMTService-Worker-Allowed: /// sw.js contents…Setzt der Server den Header nicht, schlägt die Registrierung des Service Workers fehl, da diescope-Option ({ scope: "/" }) einen breiteren Scope als das Verzeichnis anfragt, in dem sich das Service-Worker-Skript befindet (/product/sw.js).
Spezifikationen
| Specification |
|---|
| Service Workers Nightly> # service-worker-allowed> |
Browser-Kompatibilität
Siehe auch
Service-Worker-Header- Service Worker API
ServiceWorkerRegistration- Warum schlägt mein Service Worker fehl zu registrieren inUsing Service Workers.