我使用谷歌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