1. 程式人生 > >ajax提交java後臺接收參數出現亂碼

ajax提交java後臺接收參數出現亂碼

class ati -1 5% 文字 timeout 亂碼 中文字符 java後臺

1.現象:

前臺ajax提交查詢數據

  $.ajax({
              url: ‘bdmap/xx.action‘,  
              data:para,
              dataType:‘json‘,
              contentType:"application/x-www-form-urlencoded",
              success: function(data){
                  if(data.success){                     
                      callback(data.data);
                                 
                  }
       }})
  1. Request URL:http://localhost:8083/bdmap/xx.action?name=%E9%80%9F%E5%BA%A6
  2. Request Method:GET

解決:這個ajax提交,默認以GET方法提交,提交前默認使用utf8編碼格式進行編碼,然後tomcat 應用服務器對url解碼,默認使用ISO-8859-1格式解碼,這時如果url中出現中文字符,編碼和解碼格式不對應就會出現亂碼。

解決方法一:修改tomcat配置文件server.xml中對url解碼的格式,對Connector標簽設置URIEncoding="UTF-8",有兩處需要修改。

<Connector port="8083" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>

<Connector port="8039" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>

解決方法二:前端使用post方法提交數據,ajax使用 type:‘POST’ 。

ajax提交java後臺接收參數出現亂碼