首页 > 解决方案 > 有没有办法在 navigator.serviceWorker.register() 中传递凭据?

问题描述

基本上这个问题: https ://developer.microsoft.com/en-us/microsoft-edge/platform/issues/17360912/

Service Worker:注册期间未发送凭据
作者:Yannick S.
创建时间:2018 年 5 月 3 日

在经过身份验证的场景中使用 navigator.serviceWorker.register('service-worker.js') 注册服务工作人员时,获取服务工作人员的请求会省略带有凭据的 Authorization 标头,从而导致 401 错误。(其他浏览器在获取 service worker 时会发送凭据。) register 返回的 promise 被 TypeError: invalid 参数拒绝。

这似乎也适用于 Chrome 和 Firefox,我在请求中没有看到 Authorization 标头。有一个选项用于register(file, { scope })但仅用于指定服务工作者范围。

是否有类似links传递凭据的选项?
<link crossorigin="use-credentials">

标签: service-workerangular-service-workerservice-worker-events

解决方案


你的“获取”是什么样的?

尝试添加: -

credentials: "same-origin", // 包括, *same-origin, 省略

根据获取文档


推荐阅读