我使用的是google chrome,我注意到每次我做一个XHR请求时,我都会得到下面的头文件:
Cache-Control: no-cache
Pragma: no-cache
如果您在http://www.w3.org/TR/XMLHttpRequest/上阅读规范,它会显示以下内容
如果用户代理实现了HTTP缓存,它应该遵守author请求报头中的缓存控制报头(例如缓存控制:否-缓存绕过缓存)。它不能自动发送Cache-Control或Pragma请求头,除非最终用户明确请求此类行为(例如,通过重新加载页面)。
好吧,我尝试了以下几种方法:
$.ajax(myUrl, {
type: 'get',
dataType: 'json'
cache: true,
headers: {
'Cache-Control': 'max-age=200'
}
})
正如您所看到的,我显式地设置了Cache-Control头,希望获得我的资源的缓存副本。好吧,Chrome似乎忽略了Cache-Control头。
是否可以在发出XHR请求时不发送Cache-Control: no-cache
标头?
发布于 2012-03-26 22:19:05
这是个愚蠢的错误。我将开发人员工具设置为“禁用缓存”。这就是为什么它总是添加缓存控制头部的原因。如果这种情况发生在您身上,请确保您没有选中该框。
劳尔
发布于 2012-03-17 05:49:06
我刚刚测试了它,你的代码运行良好,除了缺少一个逗号。
打开网络选项卡,然后在此页面的控制台中尝试:
$.ajax('http://stackoverflow.com/', {
type: 'get',
dataType: 'json',
cache: true,
headers: {
'Cache-Control': 'max-age=123'
}
})
再次检查网络选项卡,单击刚刚发出的请求,然后单击"headers“选项卡。您将看到请求是使用您提供的Cache-Control
标头发送的。
https://stackoverflow.com/questions/9744816
复制相似问题