在 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
.
我在这里做错了什么?