由开发工具更改的缓存控制指令(仅当缓存)



我们正在开发一个Progessive Web应用程序,服务工作者会拦截其网络流量(通过fetch事件处理程序(。我们已经注意到,有时某个请求在这里失败,因为Request.cache仅在缓存时才是Request.mode,而不是同源

所以它类似于这个问题。

然后我注意到,只有当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;
    }
    // ...
});
这是一个

错误。您可以在此处查看修复进度:https://bugs.chromium.org/p/chromium/issues/detail?id=823392

最新更新