相关疑难解决方法(0)

导致'ServiceWorkerGlobalScope'执行'fetch'失败的原因:'only-if-cached'只能设置'same-origin'模式错误?

升级到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)

在这里,对服务工作者有更多了解的人能帮助我解决这个错误吗?

javascript service-worker fetch-api

30
推荐指数
1
解决办法
1万
查看次数

从网络工作者获取不发送(相同)来源

我正在尝试创建一个 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)

javascript fetch web-worker cors web

3
推荐指数
1
解决办法
1839
查看次数

标签 统计

javascript ×2

cors ×1

fetch ×1

fetch-api ×1

service-worker ×1

web ×1

web-worker ×1