0

在 Chrome 90 上(我在 MacOS 上试过),当我CacheStorage使用

const c1 = await caches.open('test');

await c1.put(new Request('/test-url'), new Response('hi i am response', { 
    headers: new Headers({ 'x-a': 'abc', 'vary': 'x-a' }) 
}));

这可以按预期工作,我从开发工具中进行了交叉检查。

但是当我尝试取回响应时

await c1.match(new Request('/test-url', { 
    headers: new Headers({ 'x-a': 'abc' }) 
}), { ignoreVary: false });

它失败并返回undefined

很明显,匹配失败是由于vary标题(按设计我想设置ignoreVary: false,顺便说一句,这也是默认选项)。

以下两个匹配尝试都按预期通过

await c1.match(new Request('/test-url', { 
    headers: new Headers({ 'x-a': 'abc' }) 
}), { ignoreVary: true });

await c1.match(new Request('/test-url', { 
     headers: new Headers({ 'x-b': 'abc' }) 
}), { ignoreVary: false });

第一个请求也应该匹配,因为x-a标头设置为abc.

我在这里做错了什么?

4

0 回答 0