解決Ajax加載JSon數(shù)據(jù)中文亂碼問題
一、問題描述
使用zTree的異步刷新父級(jí)菜單時(shí),服務(wù)器返回中文亂碼,但項(xiàng)目中使用了SpringMvc,已經(jīng)對中文亂碼處理,為什么還會(huì)出現(xiàn)呢?
此處為的異步請求的配置:
Java代碼
async: {
enable: true,
url: basePath + '/sysMenu/listSysMenu',
autoParam: ["id=parentId"]
}
SpringMvc中文字符處理:
Java代碼
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
返回的結(jié)果有中文亂碼:
Js代碼
[
{
"menuId": "880095098165986816",
"menuName": "????",
"parentId": "880095098165986815",
"menuUrl": "http://localhost:8080/imovie-manage/sysMenu/listSysMenuUI",
"menuIcon": "",
"menuSort": 1,
"isEnable": 1,
"parentMenuName": "??",
"id": "880095098165986816",
"name": "????",
"pId": "880095098165986815"
},
{
"menuId": "880095098165986817",
"menuName": "???????",
"parentId": "880095098165986815",
"menuUrl": "http://localhost:8080/imovie-manage/sysMenu/treeSysMenuUI",
"menuIcon": "",
"menuSort": 1,
"isEnable": 1,
"parentMenuName": "??",
"id": "880095098165986817",
"name": "???????",
"pId": "880095098165986815"
}
]
二、解決方案
經(jīng)過排查,發(fā)現(xiàn)是SpringMvc中文字符處理的supportedMediaTypes少了一種類型。
從瀏覽器發(fā)送的請求來看:
異步刷新使用的是post請求,但從服務(wù)器返回的時(shí)候,Content-Type為:text/plain;charset=ISO-8859-1
charset是ISO-8859-1,而不是UTF-8,而SpringMvc處理的中文亂碼沒有包含這種類型,所以導(dǎo)致中文亂碼。
所以最后的解決方法是在SpringMvc中文處理加上text/plain這個(gè)類型,如下:
Java代碼
<value>text/plain;charset=UTF-8</value>
具體如下:
Java代碼
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
<value>text/plain;charset=UTF-8</value>
</list>
</property>
總結(jié)
以上所述是小編給大家介紹的解決Ajax加載JSon數(shù)據(jù)中文亂碼問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Ajax 接收服務(wù)器返回的json響應(yīng)方法
今天小編就為大家分享一篇Ajax 接收服務(wù)器返回的json響應(yīng)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
如何創(chuàng)建ajax對象并兼容多個(gè)瀏覽器
這篇文章主要介紹了創(chuàng)建ajax對象并兼容多個(gè)瀏覽器方法簡單記錄,在某些情況下還是比較實(shí)用的,需要的朋友可以參考下2014-08-08
Ajax+php數(shù)據(jù)交互并且局部刷新頁面的實(shí)現(xiàn)詳解
這篇文章主要給大家介紹了關(guān)于利用Ajax與php數(shù)據(jù)交互并且局部刷新頁面的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-07-07
jQuery+Ajax+PHP實(shí)現(xiàn)“喜歡”評級(jí)功能附源碼下載
有同學(xué)問我如何實(shí)現(xiàn)一個(gè)像美麗說那樣的“我喜歡”評級(jí)功能,當(dāng)用戶看到自己喜歡的圖片或文章時(shí),點(diǎn)擊“紅心”按鈕,系統(tǒng)會(huì)自動(dòng)記錄用戶的點(diǎn)擊,并將總數(shù)加1。這樣再結(jié)合不同的系統(tǒng),可以將此功能應(yīng)用到投票或收藏商品中去(如淘寶的收藏商品)。2015-10-10
基于fileUpload文件上傳帶進(jìn)度條效果的實(shí)例(必看)
下面小編就為大家?guī)硪黄趂ileUpload文件上傳帶進(jìn)度條效果的實(shí)例(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
ajax請求后臺(tái)接口數(shù)據(jù)與返回值處理js的實(shí)例講解
今天小編就為大家分享一篇ajax請求后臺(tái)接口數(shù)據(jù)與返回值處理js的實(shí)例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08
JS AJAX前臺(tái)如何給后臺(tái)類的函數(shù)傳遞參數(shù)
這篇文章主要介紹了JS AJAX前臺(tái)給后臺(tái)類的函數(shù)傳遞參數(shù)的方法,下面有個(gè)不錯(cuò)的示例,需要的朋友可以參考下2014-06-06

