AJax緩存和編碼問題不難解決,下面是解決方法。
編碼問題
默認使用UTF-8,如果一旦發現對象找不到的情況,可能js中輸入了中文,同時js的編碼格式可能為gb2312,可用記事本打開JS,另存為utf-8格式的文檔。
通過XMLHttpRequest獲取的數據,默認的字符編碼是UTF-8,如果前端頁面是GB2312或者其它編碼,顯示獲取的數據就是亂碼。通過XMLHTTPRequest,POST的數據也是UTF-8編碼,如果後台是GB2312或者其他編碼也會出現亂碼。
Cache緩存問題
由於IE的緩存處理機制問題,每次通過XMLHttpRequest訪問動態頁面返回的總是首次訪問的內容,解決方法有:
1. 客戶端通過添加隨機字符串解決。如:
var url = 'http://www.bothv.com/';2. 在HTTP headers禁止緩存。如:
HTTP:
<meta http-equiv="pragma" content="no-cache" />PHP:
header("Expires: Thu, 01 Jan 1970 00:00:01 GMT");ASP:
Response.expires=0JSP:
response.addHeader("Cache-Control", "no-cache");3. 在XMLHttpRequest發送請求之前加上:
XMLHttpRequest.setRequestHeader("If-ModifIEd-Since","0");