運用ajax做了乙個名字檢驗,第一次是有效的,但是提交過後,再檢驗一次,結果就不對了,是由於ie的cache的原因。
複製** **如下:
function verify() else if(data==2)else
} }); }
原理:
firefox 每次 request 都會重新再回一次 server 取得最新的資料,但是 ie 就不一樣了,它會 cache 住之前得到的資料,只有第一次 request 時會真正的去 server 讀取資料,導致ajax資料不會隨時間而更新….
解決方案(從網上收集的):
1、在服務端加 header("cache-control: no-cache, must-revalidate"); 或者用下面的組合更好一些:
複製** **如下:
header("expires: sat, 1 jan 2005 00:00:00 gmt");
header("last-modified: ".gmdate( "d, d m y h:i:s")."gmt");
header("cache-control: no-cache, must-revalidate");
header("pragma: no-cache");
2、在ajax傳送請求前加上 xmlhttprequest.setrequestheader("if-modified-since","0");
3、在ajax傳送請求前加上 xmlhttpre程式設計客棧quest.setrequestheader("cache-control","no-cache");
4、在 ajax 的 url 引數後加上 "?fresh=" + math.random(); //當然這裡引數 fresh 可以任意取了
關於ajax的IE cache 問題分析及解決
最近做了乙個ajax相關的功能,大概目標根據使用者的不同登陸狀態來生成不同的歡迎語,如下 使用者登陸了,就顯示 您好呀,又來啦!使用者不登陸,則顯示 您還沒登陸!很簡單的應用,結果我寫完ajax後,發現乙個致命的問題 firefox中一切正常,但在ie第一次開啟沒問題,再重新整理一次,中文就會成為亂...
ajax的相關知識
第一種 xmlhttp.readystate的五種就緒狀況 0 請求未初始化 還沒有呼叫 open 1 請求已經建立,但是還沒有傳送 還沒有呼叫 send 2 請求已傳送,正在處理中 通常現在可以從響應中獲取內容頭 3 請求在處理中 通常響應中已有部分資料可用了,但是伺服器還沒有完成響應的生成。4 ...
ajax相關問題
ajax完成前後端互動,可以用原生ajax實現,也可以用jquery ajax實現。之前自己用ajax請求乙個html頁面,有個大佬說ajax主要實現的是請求json檔案。總之,也就是那樣寫的。原生 ajax 原生ajax主要分為 1.建立xhr物件 2.open 3.send 4.接收資料 在這裡...