200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > springmvc ajax返回数据中文乱码

springmvc ajax返回数据中文乱码

时间:2020-11-26 09:35:52

相关推荐

springmvc ajax返回数据中文乱码

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中开头的位置,因为拦截有顺序,如果放在后面的话容易拦截不到。

方法二、@RequestMapping里面加入produces = “text/plain;charset=UTF-8”

@RequestMapping(value="/loginVerify",method=RequestMethod.POST,produces="text/plain;charset=UTF-8")@ResponseBodypublicStringloginVerify(HttpServletRequestrequest)throwsException{Map<String,Object>map=newHashMap<String,Object>();Stringuser=request.getParameter("user");Stringpassword=request.getParameter("password");UserCustomuserCustom=userService.getUserByNameOrEmail(user);Stringmessage="";if(userCustom==null){map.put("code",0);map.put("msg","用户名无效!");}elseif(!userCustom.getUserPass().equals(password)){map.put("code",0);map.put("msg","密码错误!");}else{map.put("code",1);map.put("msg","");request.getSession().setAttribute("userId",userCustom.getUserId());}Stringresult=newJSONObject(map).toString();returnresult;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。