files/en-us/web/api/navigationpreloadmanager/setheadervalue/index.md
{{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("Window/fetch", "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-Preloadto ensure that the different responses are cached.
setHeaderValue(value)
value
A {{jsxref("Promise")}} that resolves with {{jsxref('undefined')}}.
InvalidStateError {{domxref("DOMException")}}
The code below demonstrates how the value might be set.
navigator.serviceWorker.ready
.then((registration) =>
registration.navigationPreload.setHeaderValue(newValue),
)
.then(() => console.log("Done!"))
.catch((e) =>
console.error(`NavigationPreloadManager not supported: ${e.message}`),
);
{{Specifications}}
{{Compat}}