dev-tools改变了cache-control指令(only-if-cached)?

时间:2018-04-05 13:55:51

标签: google-chrome-devtools cache-control fetch-api

我们正在开发一个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;
    }
    // ...
});

1 个答案:

答案 0 :(得分:1)

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