Headers: Service-Worker-Allowed
Service-Worker-Allowed header
The HTTP Service-Worker-Allowed response header is used to broaden the path restriction for a service worker's default scope.
By default, the scope for a service worker registration is the directory where the service worker script is located. For example, if the script sw.js is located in /js/sw.js, it can only control URLs under /js/ by default. Servers can use the Service-Worker-Allowed header to allow a service worker to control URLs outside of its own directory.
A service worker intercepts all network requests within its scope, so you should avoid using overly-broad scopes unless necessary.
| Header type | Response header |
|---|
Syntax
Service-Worker-Allowed: <scope>
Directives
<scope>-
A string representing a URL that defines a service worker's registration scope; that is, what range of URLs a service worker can control.
Examples
>Using Service-Worker-Allowed to broaden service worker scope
The JavaScript example below is included in example.com/product/index.html, and attempts to register a service worker with a scope that applies to all resources under example.com/.
navigator.serviceWorker.register("./sw.js", { scope: "/" }).then(
(registration) => {
console.log("Install succeeded, scoped to '/'", registration);
},
(error) => {
console.error(`Service worker registration failed: ${error}`);
},
);
The HTTP response to the service worker's script resource request (./sw.js) includes the Service-Worker-Allowed header set to /:
HTTP/1.1 200 OK Date: Mon, 16 Dec 2024 14:37:20 GMT Service-Worker-Allowed: / // sw.js contents…
If the server doesn't set the header, the service worker registration will fail, as the scope option ({ scope: "/" }) requests a scope broader than the directory where the service worker script is located (/product/sw.js).
Specifications
| Specification |
|---|
| Service Workers Nightly> # service-worker-allowed> |
Browser compatibility
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
Service-Worker-Allowed |
42 | 16 | 40 | 29 | 11.1 | 42 | 40 | 29 | 11.3 | 4.0 | 42 | 11.3 |
See also
-
Service-Workerheader - Service worker API
ServiceWorkerRegistration- Why is my service worker failing to register in Using Service Workers.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Service-Worker-Allowed