ajax如何传超长字符串_解决ajax超长字符串、中文乱码问题
在最近的項目測試中發(fā)現(xiàn)通過ajax發(fā)送超長參數(shù)時遇到這個腳本錯誤:
系統(tǒng)找不到指定資源
the system cannot locate the resource specified
意思是參數(shù)太長,無法發(fā)送,測試的瀏覽器是IE6//IE7//IE8,由于利用了ActiveX所以其他瀏覽器的情況可能不一樣。
查詢了大量資料也沒找到頭緒,后來改用xhr.send(params)來發(fā)送數(shù)據(jù)的時候就通過了,不過數(shù)據(jù)發(fā)送到后臺的時候卻遇到中文亂碼問題,修改了content-type為 application/x-www-form-urlencoded; charset=utf-8后,后臺順利取得經(jīng)過編碼的參數(shù),解碼之后即可獲取中文。相關(guān)代碼如下:
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″); //注意編碼設(shè)置
xhr.send(params);//在這里發(fā)送數(shù)據(jù)
后臺接收參數(shù)后的java處理代碼:
params= request.getParameter(“params”);
params=java.net.URLDecoder.encode(params,”utf-8”);//解碼
所以慎用GBK、GB2321對數(shù)據(jù)進行編碼,UTF-8是比較合適的選擇。
總結(jié)
以上是生活随笔為你收集整理的ajax如何传超长字符串_解决ajax超长字符串、中文乱码问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天玑8000max跟8100差距大不大(
- 下一篇: 电脑显示器出现竖条(电脑显示器出现竖条纹