在我的網站中,每個頁面都可以返回html和json。 如果請求是正常的頁面返回html,如果請求是AJAX頁面返回json。當我使用AJAX時,Firefox忽略緩存控制無存儲,無緩存
問題是,當我需要json響應時,firefox會緩存html響應。 在這兩種情況下的響應頭不帶緩存選項
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection Keep-Alive
Date Sat, 13 Apr 2013 08:31:06 GMT
Expires Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive timeout=5, max=100
Pragma no-cache
這就是我正在做的AJAX請求:
$.ajax({
url: window.location.href,
dataType: 'json',
//cache: false,
success: function(data) {
// here I get html, (must be json)
// If I set "cache: false" then all is ok
}
});
這個問題在Firefox瀏覽器。在鉻一切正常
我認爲這是因爲我發送請求在我現在定位的頁面上。因爲如果我在window.location.href上更改url。 '?a = 1',如果我已經在頁面window.location.href。 '?a = 1'AJAX以我想要的方式返回json。
這是很奇怪的行爲; no-cache在Firefox中一般工作!你有鏈接到顯示此行爲的頁面嗎? –
我還沒有鏈接,它在本地機器上。它是好的,沒有緩存的作品。但是,如果頁面已經在Firefox中打開(就像我的情況一樣),並且您在此頁面上執行AJAX請求,則響應會從緩存中獲取。我同意@allyourcode,它更好地使用不同的URL來獲取JSON和HTML。現在,我有/ foo頁面和/foo.json json – Ildar
重點是你描述的是no-cache _not_工作。這很奇怪,因爲我剛剛在本地嘗試了您的示例,並且它工作正常。因此,希望看到一個測試用例,它不工作,所以我可以調試它並修復任何問題... –