我使用谷歌Chrome和我注意到,每一次我做一个XHR请求时,我碰到下面的头放在请求:的jQuery的XmlHttpRequest的Cache-Control被忽略
Cache-Control: no-cache
Pragma: no-cache
如果你读的规范http://www.w3.org/TR/XMLHttpRequest/它说以下
如果用户代理实现HTTP缓存应该尊重作者请求头 缓存控制报头(例如缓存控制: 无缓存绕过高速缓存)。除非最终用户明确要求 这样的行为(例如通过重新加载页面),否则它不能自动发送缓存控制或附件请求标头。
嗯,我想以下几点:
$.ajax(myUrl, {
type: 'get',
dataType: 'json'
cache: true,
headers: {
'Cache-Control': 'max-age=200'
}
})
正如你看到的,我明确地设置Cache-Control头地让我的资源的缓存副本的希望。好吧,Chrome似乎忽略了Cache-Control标头。
发出XHR请求时是否可以不发送Cache-Control: no-cache
标头?
是的,请注意Firebug在“Net”菜单中也有“禁用浏览器缓存”。我也被这一个咬了。 – harpo 2013-09-12 15:35:03
我一直想弄清楚为什么本机提取()没有从缓存中返回数据,即使服务器正确设置了缓存控制标题。谢谢你帮助纠正这个疏忽,这让我很生气。 – 2016-01-15 23:13:20
我花了很长时间试图追查下来。谢谢! – 2016-12-05 22:22:46