我想確保通過AJAX調用請求的數據是新鮮的,而不是高速緩存的。因此,我發送標題Cache-Control: no-cache
強制高速緩存控制:在Chrome上通過XMLHttpRequest在F5上的no-cache重裝
但是,如果用戶按F5,我的Chrome版本33將覆蓋此標頭Cache-Control: max-age=0
。
例子。把你的網絡服務器上test.html
與內容
<script>
var xhr = new XMLHttpRequest;
xhr.open('GET', 'test.html');
xhr.setRequestHeader('Cache-Control', 'no-cache');
xhr.send();
</script>
在網絡選項卡中我看到的test.html AJAX調用上的鍍鉻調試器。狀態碼200.現在按F5重新加載頁面。有最大年齡:0,狀態代碼304未修改。
Firefox顯示類似的行爲。 Intead僅覆蓋請求頭,將其修改爲Cache-Control:no-cache,F5上的max-age = 0。
我可以壓制這個嗎?
這不是真的。 [Cache-Control既是響應頭又是請求頭。](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.4) – wadim
@wadim因此,Chrome和Firefox並不尊重RFC 2616(現在7234)? –
只是一個說明,這個答案是一個社區wiki,所以如果你覺得它沒有充分回答這個問題,隨時更新它。我沒有時間去重新審視它。 –