我正在嘗試提供可緩存內容,具體取決於它是否是ajax請求。PHP/Ajax「Vary:X-Requested-With」不適用於我!
場景:
小PHP腳本 「/test.php」 提供一些HTML的輸出,並設置以下標題:
Expires Wed, 23 Feb 2011 13:30:06 GMT
Cache-Control public, max-age=60
Vary X-Requested-With,Accept-Encoding
的輸出取決於$_SERVER['HTTP_X_REQUESTED_WITH']
狀態。
當我的Firefox指向Url時,我得到輸出,而對於下一個分鐘,我從瀏覽器緩存中得到相同的結果,而不是擊中服務器。好的,到目前爲止。
當我通過XMLHttpRequest
(與X-Requested-With: XMLHttpRequest
標題)請求相同的資源時,我的Firefox不會請求服務器,但會提供Cache的(錯誤)響應!
對於其他方式,它是相同的。資源上的Ajax-Call會填充緩存,並且後續的瀏覽器請求會緩存來自緩存的(錯誤)響應。
有沒有人有這方面的經驗?我認爲這應該是一個普遍的問題 - 根據是否使用ajax提供內容(在同一個URL上)。
問候,ILJA
Firefox甚至不發送初始Ajax請求? – Gumbo 2011-04-16 19:38:00