我對Chrome有這個奇怪的問題。它經常會緩存PUT請求。Chrome瀏覽器正在緩存HTTP PUT請求
詳細信息:我有一個應用程序使用backbone.js,當試圖堅持對模型進行一些更改(骨幹自動生成PUT請求)時,Chrome不會將該請求發送到服務器。它在Firefox和IE中工作得很好(迄今爲止在Safari上還沒有看到這個問題)。
下面是Chrome開發人員工具「網絡」選項卡的屏幕截圖。如您所見,PUT請求的響應正從緩存中返回(請求不會觸及服務器!!)
下面是該同一請求的標頭詳細信息的屏幕截圖。再次表明,Chrome不會將PUT請求發送到服務器。
請求的負載是JSON數據。任何想法爲什麼這是發生/我做錯了什麼?
更新:鉻已確認這確實是bug on it's end(感謝JanHančič)。
治標不治本 我結束了覆蓋Backbone.sync
方法和附加一個時間戳PUT,POST的查詢字符串和DELETE請求,讓他們始終是唯一的:
if(!options.data && model && (method == 'create' || method == 'update' || method == 'delete')) {
params.url += (params.url.indexOf('?') == -1 ? '?' : '&') + '_=' + new Date().getTime();
}
請問如果在PUT請求發送數據時,如果更改提交併觸發數據,你會之前就已經發送或這是否也occure這只是發生再次請求? – 2012-08-01 06:45:24
服務器的響應不會改變,也許這就是它緩存的原因。就像羅賓說的那樣,更改/更正請求 – Zebra 2012-08-01 06:46:19
數據肯定會改變。但是,我認爲數據是否已經改變並不重要。 PUT實際上不是可緩存的請求類型。它意味着將數據發送到服務器,而不是獲取數據。 – anushr 2012-08-01 06:48:40