升级到Chrome 64后,我意识到当我在新标签页上加载页面时会出现此错误.
我无法确定它在服务工作者身上的位置.这是我运行fetch的代码:
self.addEventListener('fetch', function(event) {
if (event.request.url.startsWith(self.location.origin)) {
event.respondWith(
caches.match(event.request).then(function(response) {
return response || fetch(event.request).then(function(fetch_resp){
return fetch_resp;
});
})
);
}
});
Run Code Online (Sandbox Code Playgroud)
在这里,对服务工作者有更多了解的人能帮助我解决这个错误吗?
我正在尝试创建一个 Web Worker 来存储访问令牌并处理 API 调用。我想做的第一件事是从 Web Worker 发出获取请求以获取访问令牌。
用户使用cookies;httpOnly 和 SameSite 已启用,但尚未安全,因为我在 http 上本地运行它。该 cookie 是存储令牌或令牌身份的位置。
我的 api 中有一个端点,我想通过地址来获取访问令牌。然后我可以用它来处理所需的资源。令牌保留在 Web Worker 中并且不会暴露。
我有一个来自该 Web Worker 的 Web Worker(采用 Base64 字符串),我想到达端点以获取访问令牌。我用 fetch 来做到这一点。但是,当我想发送凭据时。CORS 不能设置为“*”。我可以将我的网站的 url(在本例中为 localhost)指定为服务器中的源。
在我的网络工作者中:
const tryFetch = await fetch(authUrl, {
credentials: "include",
});
Run Code Online (Sandbox Code Playgroud)
然而,传递给服务器的源似乎是“null”。有没有办法解决这个问题或者我正在尝试错误的东西?
Access to fetch at 'http://localhost:3000/api/auth' from origin 'null' has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header has a value 'http://localhost:3000' that is not equal to the supplied origin. Have the server send …Run Code Online (Sandbox Code Playgroud)