我们正在开发一个Progessive Web App,服务工作人员拦截网络流量(通过 fetch 事件处理程序)。我们注意到,有时某个请求在此失败,因为Request.cache
仅 - 如果已缓存且Request.mode
no-cors ,{ {3}} 同源。
所以它类似于but not。
然后我注意到,只有当Chrome(v 65)DevTools没有打开时才会发生这种情况。有没有人注意到同样的现象,有没有人有想法,为什么会这样呢?
请求的部分内容:
bodyUsed: false,
cache: "only-if-cached",
credentials: "include",
destination: "unknown",
headers: Headers {},
integrity: "",
method: "GET",
mode: "no-cors",
redirect: "follow",
referrer: "",
referrerPolicy: "no-referrer-when-downgrade",
url: "https://example.com/path/to/app-name/#!
我们正在处理这个问题,但我担心这不合适。
serviceWorkerGlobal.addEventListener('fetch', function(event)
{
if (event.request.cache === 'only-if-cached' && event.request.mode !== 'same-origin') {
var oStrangeRequest = event.request.clone();
console.log('Fetch. Request cache has only-if-cached, but not same-origin.',
oStrangeRequest.cache, oStrangeRequest.mode,
'request redirect:',
oStrangeRequest.redirect, oStrangeRequest.url, oStrangeRequest);
return;
}
// ...
});
答案 0 :(得分:1)
这是一个错误。您可以在此处查看修复的进度:https://bugs.chromium.org/p/chromium/issues/detail?id=823392