JQuery中Ajax的Post提交在IE下中文亂碼的解決方法
更新時(shí)間:2014年05月21日 09:21:05 作者:
在JQuery的Ajax POST請求中,進(jìn)行請求,其中的中文在后臺,顯示為亂碼,在FF/Chrome中,可以正常傳遞中文,但是在IE下,則存在問題
引言: 在JQuery的Ajax POST請求中,進(jìn)行請求,其中的中文在后臺,顯示為亂碼,該如何解決呢?
問題的引入:
var regid = $('#oregion').combobox('getValue');
//var sname = $('#sname').val();
var sname = encodeURI($('#sname').val(),"UTF-8");
if(regid!=""&®id!='undefined'){
$.ajax({
async: true,
type : "POST",
dataType : "json",
url : "<%=request.getContextPath() %>/secretary/isHasUser.do?regid="+regid+"&sname="+sname,
success : function(data) {
if(data.mes!=""&&data.mes!=null){
$.messager.alert('Warning',data.mes);
return false;
}
}
});
}
}
以上的代碼在FF/Chrome中,可以正常傳遞中文,但是在IE下,則存在問題,在后臺輸出的信息為亂碼。
問題嘗試辦法:
1. 設(shè)置了 contentType: "text/plain; charset=utf-8", 問題依然存在
2. 重新檢查了ajax代碼所在的jsp頁面,皆為使用utf-8,但是問題依然存在
3. 在后臺的java代碼中,強(qiáng)制使用utf-8、gbk、gb2312的編碼轉(zhuǎn)換, 問題依然存在
經(jīng)過分析,判斷其可能與瀏覽器或者JQuery中的內(nèi)容傳輸有關(guān),目前也無法準(zhǔn)確的確定。
解決的辦法:
前段:encodeURI($(dom).val(), "UTF-8"); 使用encodeURI進(jìn)行編碼
后端Java代碼:
URLDecoder.decode(inputStr,"UTF-8"): 后端代碼針對前段傳遞過來的字符串,進(jìn)行解碼。
總結(jié):
最后就可以針對Ajax Post請求傳遞過來的字符串信息,就可以正常顯示中文了。
問題的引入:
復(fù)制代碼 代碼如下:
var regid = $('#oregion').combobox('getValue');
//var sname = $('#sname').val();
var sname = encodeURI($('#sname').val(),"UTF-8");
if(regid!=""&®id!='undefined'){
$.ajax({
async: true,
type : "POST",
dataType : "json",
url : "<%=request.getContextPath() %>/secretary/isHasUser.do?regid="+regid+"&sname="+sname,
success : function(data) {
if(data.mes!=""&&data.mes!=null){
$.messager.alert('Warning',data.mes);
return false;
}
}
});
}
}
以上的代碼在FF/Chrome中,可以正常傳遞中文,但是在IE下,則存在問題,在后臺輸出的信息為亂碼。
問題嘗試辦法:
1. 設(shè)置了 contentType: "text/plain; charset=utf-8", 問題依然存在
2. 重新檢查了ajax代碼所在的jsp頁面,皆為使用utf-8,但是問題依然存在
3. 在后臺的java代碼中,強(qiáng)制使用utf-8、gbk、gb2312的編碼轉(zhuǎn)換, 問題依然存在
經(jīng)過分析,判斷其可能與瀏覽器或者JQuery中的內(nèi)容傳輸有關(guān),目前也無法準(zhǔn)確的確定。
解決的辦法:
前段:encodeURI($(dom).val(), "UTF-8"); 使用encodeURI進(jìn)行編碼
后端Java代碼:
URLDecoder.decode(inputStr,"UTF-8"): 后端代碼針對前段傳遞過來的字符串,進(jìn)行解碼。
總結(jié):
最后就可以針對Ajax Post請求傳遞過來的字符串信息,就可以正常顯示中文了。
相關(guān)文章
完美解決ajax跨域請求下parsererror的錯(cuò)誤
下面小編就為大家?guī)硪黄昝澜鉀Qajax跨域請求下parsererror的錯(cuò)誤。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01使用ajax實(shí)現(xiàn)無刷新改變頁面內(nèi)容和地址欄URL
本文主要詳細(xì)介紹了使用ajax和window.history.pushState無刷新改變頁面內(nèi)容和地址欄URL的方法,需要的朋友可以參考下2015-03-03jquery ajax多次請求數(shù)據(jù)時(shí) 不刷新問題的解決方法
下面小編就為大家?guī)硪黄猨query ajax多次請求數(shù)據(jù)時(shí) 不刷新問題的解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10理解jquery ajax中的datatype屬性選項(xiàng)值
jquery中ajax的dataType屬性用于指定服務(wù)器返回的數(shù)據(jù)類型,如果不指定,jQuery 將自動根據(jù)HTTP包MIME信息來智能判斷,如果datatype選項(xiàng)不填寫的話,會將返回的數(shù)據(jù)當(dāng)成字符串處理。2015-10-10AJAX驗(yàn)證數(shù)據(jù)庫內(nèi)容并將值顯示在頁面
光標(biāo)離開文本框,在本頁面的相應(yīng)地方獲取數(shù)據(jù)庫中改值所對應(yīng)的其他數(shù)據(jù),相應(yīng)的實(shí)現(xiàn)代碼如下,感興趣的朋友可以看看2014-08-08ajax+springmvc實(shí)現(xiàn)C與View之間的數(shù)據(jù)交流方法
下面小編就為大家?guī)硪黄猘jax+springmvc實(shí)現(xiàn)C與View之間的數(shù)據(jù)交流方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03