springmvc ajax返回数据中文乱码 问题经常出现,这里提供两种解决办法。
这里是一个 登录的例子,ajax 验证用户名和密码
$("#loginForm").submit(function(){$.ajax({async:true,type:"POST",url:'${pageContext.request.contextPath}/loginVerify',contentType:"application/x-www-form-urlencoded;charset=utf-8",data:$("#loginForm").serialize(),dataType:"json",success:function(data){if(data.code==0){alert(data.msg);}else{window.location.href="${pageContext.request.contextPath}/admin";}},error:function(){alert("数据获取失败")}})})
方法一、配置springMVC编码过滤器
这种方法较为常见,在 web.xml顶部添加如下代码
<!--post乱码过滤器--><!--配置springMVC编码过滤器--><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><!--设置过滤器中的属性值--><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><!--启动过滤器--><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><!--过滤所有请求--><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
注意:最好把这段代码放在web.xml中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到。