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

N. *_*ias 30 javascript service-worker fetch-api

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

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

rjb*_*ude 34

我相信这是已经报道了铬的错误在这里.希望它很快就会得到解决,或者会发布有关该问题的更多信息.

Paul Irish实施了一项临时工作,具体如下:

if (e.request.cache === 'only-if-cached' && e.request.mode !== 'same-origin') {
  return;
}
Run Code Online (Sandbox Code Playgroud)

我在服务工作者installfetch监听器的回调中运行它,它防止了错误.

你可以在这里看到保罗代码完整提交.