ajax如何传超长字符串_解决ajax超长字符串、中文乱码问题
在最近的項目測試中發現通過ajax發送超長參數時遇到這個腳本錯誤:
系統找不到指定資源
the system cannot locate the resource specified
意思是參數太長,無法發送,測試的瀏覽器是IE6//IE7//IE8,由于利用了ActiveX所以其他瀏覽器的情況可能不一樣。
查詢了大量資料也沒找到頭緒,后來改用xhr.send(params)來發送數據的時候就通過了,不過數據發送到后臺的時候卻遇到中文亂碼問題,修改了content-type為 application/x-www-form-urlencoded; charset=utf-8后,后臺順利取得經過編碼的參數,解碼之后即可獲取中文。相關代碼如下:
var xhr = new xmlHttp();//獲取xmlhttp
var url = AppRoot + “dispatch”;
var param = “VLparam=”+param;
xhr.open(”POST”,url,true);
xhr.setRequestHeader(‘Content-length’, this.params.length);
xhr.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded; charset=utf-8″); //注意編碼設置
xhr.send(params);//在這里發送數據
后臺接收參數后的java處理代碼:
params= request.getParameter(“params”);
params=java.net.URLDecoder.encode(params,”utf-8”);//解碼
所以慎用GBK、GB2321對數據進行編碼,UTF-8是比較合適的選擇。
總結
以上是生活随笔為你收集整理的ajax如何传超长字符串_解决ajax超长字符串、中文乱码问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天玑8000max跟8100差距大不大(
- 下一篇: 如何将原图和json融合_双曲知识嵌入: