ajax如何传超长字符串_解决ajax超长字符串、中文乱码问题
在最近的項(xiàng)目測(cè)試中發(fā)現(xiàn)通過(guò)ajax發(fā)送超長(zhǎng)參數(shù)時(shí)遇到這個(gè)腳本錯(cuò)誤:
系統(tǒng)找不到指定資源
the system cannot locate the resource specified
意思是參數(shù)太長(zhǎng),無(wú)法發(fā)送,測(cè)試的瀏覽器是IE6//IE7//IE8,由于利用了ActiveX所以其他瀏覽器的情況可能不一樣。
查詢(xún)了大量資料也沒(méi)找到頭緒,后來(lái)改用xhr.send(params)來(lái)發(fā)送數(shù)據(jù)的時(shí)候就通過(guò)了,不過(guò)數(shù)據(jù)發(fā)送到后臺(tái)的時(shí)候卻遇到中文亂碼問(wèn)題,修改了content-type為 application/x-www-form-urlencoded; charset=utf-8后,后臺(tái)順利取得經(jīng)過(guò)編碼的參數(shù),解碼之后即可獲取中文。相關(guān)代碼如下:
var xhr = new xmlHttp();//獲取xmlhttp
var url = AppRoot + “dispatch”;
var param = “VLparam=”+param;
xhr.open(”P(pán)OST”,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ù)
后臺(tái)接收參數(shù)后的java處理代碼:
params= request.getParameter(“params”);
params=java.net.URLDecoder.encode(params,”utf-8”);//解碼
所以慎用GBK、GB2321對(duì)數(shù)據(jù)進(jìn)行編碼,UTF-8是比較合適的選擇。
總結(jié)
以上是生活随笔為你收集整理的ajax如何传超长字符串_解决ajax超长字符串、中文乱码问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 天玑8000max跟8100差距大不大(
- 下一篇: 如何将原图和json融合_双曲知识嵌入: