首页 > 代码库 > springmvc,通过ajax方式提交页面数据,后台返回json数据中文信息乱码
springmvc,通过ajax方式提交页面数据,后台返回json数据中文信息乱码
本人刚开始接触springmvc,项目搭建参照https://my.oschina.net/gaussik/blog/385697。在用IDEA写登录注册的时候,想通过ajax方式提交数据到后台,然后遇到如题所述的乱码问题,然后度娘了好多,终于解决了。废话不多说,直接上代码。
首先是登录页面login.jsp
1 <%-- 2 Created by IntelliJ IDEA. 3 User: PENG027 4 Date: 2016/11/11 5 Time: 15:48 6 To change this template use File | Settings | File Templates. 7 --%> 8 <%@ page contentType="text/html;charset=UTF-8" pageEncoding="utf-8" language="java" %> 9 <html> 10 <head> 11 <title>index</title> 12 <script type="text/javascript" src="http://www.mamicode.com/js/jquery.min.js"></script> 13 <script type="text/javascript"> 14 function login() { 15 var name=$("#id1").val(); 16 var pwd=$("#id2").val(); 17 $.ajax({ 18 url:‘/login‘, 19 type:‘post‘, 20 contentType:‘application/json‘, 21 data:JSON.stringify({‘username‘:name,‘password‘:pwd}), 22 dataType:‘json‘, 23 async:false, 24 success:function (msg) { 25 // alert("页面内容改变"); 26 // $("#p").text(msg.msg); 27 window.location.href="http://www.mamicode.com/success.jsp?id="+Math.random(); 28 }, 29 error:function () { 30 alert("failure"); 31 } 32 }); 33 } 34 </script> 35 </head> 36 <body> 37 <form> 38 username:<input id="id1" type="text" name="username"/><br> 39 password:<input id="id2" type="password" name="password"/><br> 40 <input id="id3" type="button" value="http://www.mamicode.com/登录" onclick="login()"/><br> 41 <%--<p id="p">点击登录之后我会改变</p>--%> 42 </form> 43 </body> 44 </html>
然后是后台Java代码
1 package controller; 2 3 import org.json.JSONException; 4 import org.json.JSONObject; 5 import org.springframework.stereotype.Controller; 6 import org.springframework.ui.Model; 7 import org.springframework.web.bind.annotation.RequestMapping; 8 import org.springframework.web.bind.annotation.ResponseBody; 9 10 @Controller 11 public class MainController { 12 @ResponseBody 13 /* 14 注意了,就是这儿。我之前是这么写的。修改之后记得重启服务器。 15 @RequestMapping("/login") 16 */ 17 @RequestMapping(value = "http://www.mamicode.com/login", produces = {"text/html;charset=UTF-8;"}) 18 public String hello(Model model) { 19 JSONObject jsonObject = new JSONObject(); 20 try { 21 jsonObject.put("msg","中文乱码"); 22 } catch (JSONException e) { 23 e.printStackTrace(); 24 } 25 return jsonObject.toString(); 26 // return "success"; 27 } 28 }
修改之后记得重启服务器
修改之后记得重启服务器
修改之后记得重启服务器
重要的事说三遍,修改的地方就加上
produces = {"text/html;charset=UTF-8;"}
这几个字,但是没有重启服务器,搞了四个小时。
springmvc,通过ajax方式提交页面数据,后台返回json数据中文信息乱码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。