-
Notifications
You must be signed in to change notification settings - Fork 22.4k
/
index.md
60 lines (41 loc) · 2.11 KB
/
index.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
---
title: "NavigationPreloadManager: setHeaderValue() method"
short-title: setHeaderValue()
slug: Web/API/NavigationPreloadManager/setHeaderValue
page-type: web-api-instance-method
browser-compat: api.NavigationPreloadManager.setHeaderValue
---
{{APIRef("Service Workers API")}}{{SecureContext_Header}}{{AvailableInWorkers}}
The **`setHeaderValue()`** method of the {{domxref("NavigationPreloadManager")}} interface sets the value of the {{HTTPHeader("Service-Worker-Navigation-Preload")}} header that will be sent with requests resulting from a {{domxref("fetch()")}} operation made during service worker navigation preloading.
It returns an empty {{jsxref("Promise")}} that resolves with `undefined`.
The presence of the {{HTTPHeader("Service-Worker-Navigation-Preload")}} header in preloading requests allows servers to configure the returned resource differently for preloading fetch requests than from normal fetch requests.
The default directive is set to `true`: this method allows the possibility of configuring multiple different responses to preload requests.
> **Note:** If a different response may result from setting this header, the server must set `Vary: Service-Worker-Navigation-Preload` to ensure that the different responses are cached.
## Syntax
```js-nolint
setHeaderValue(value)
```
### Parameters
- `value`
- : An arbitrary string value, which the target server uses to determine what should returned for the requested resource.
### Return value
A {{jsxref("Promise")}} that resolves with {{jsxref('undefined')}}.
### Exceptions
- `InvalidStateError` {{domxref("DOMException")}}
- : There is no active worker associated with the registration to which this {{domxref("NavigationPreloadManager")}} belongs.
## Examples
The code below demonstrates how the value might be set.
```js
navigator.serviceWorker.ready
.then((registration) =>
registration.navigationPreload.setHeaderValue(newValue),
)
.then(() => console.log("Done!"))
.catch((e) =>
console.error(`NavigationPreloadManager not supported: ${e.message}`),
);
```
## Specifications
{{Specifications}}
## Browser compatibility
{{Compat}}