bug說明:
同一賬戶下的默認收貨地址只有一個,默認收貨地址可以修改,修改完成后,使用ajax重新加載收貨地址部分。
默認收貨地址狀態標記:status = 1;
在IE瀏覽器做了修改后,重新加載的數據和未修改之前一樣,拿到的數據如下圖所示:

而在谷歌瀏覽器刷新頁面,拿到以下數據:

谷歌的數據和數據庫的數據是一致的。
開始以為是js代碼在IE瀏覽器運行錯誤,打開IE控制台后,發現代碼並沒有報錯。
於是我想是不是在IE下,請求沒有發生。
我在修改默認收貨地址之前,先將idea編輯run里面的代碼清空,然后修改默認收貨地址,發現idea編輯器里沒有運行代碼。初步判斷為請求沒有發生。
但是在IE瀏覽器是捕獲了請求的,如下圖所示,請求是發生了的!但是,在IE返回的304!!!

谷歌瀏覽器返回的是200:

真是一群羊駝從我心里奔過!!IE ajax返回304!!每次請求走的都是緩存!!
IE下的ajax請求是按照IP地址和請求路由進行緩存。如果ajax請求使用的請求方式是get,同時參數、路徑相同,ajax會先從本地緩存中取。
解決方案:
1.直接在請求地址后面加一個時間戳或者是隨機數
如:url: '${rc.contextPath}/api/user/address?' + Math.random(),
2.禁止緩存
①前端頁面禁止緩存:<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache">
②前端ajax禁止緩存:ajax參數cache設置為false。
說明:cache參數默認為true(當dataType為script時,默認為false)。設置為false將不會從瀏覽器緩存中加載請求信息。
至於后端該怎樣禁止緩存,我還不造,哈哈哈。
關於304的詳細解說,大家可以看看http://www.cnblogs.com/ziyunfei/archive/2012/11/16/2772729.htm這篇博文。
