springmvc,通過ajax方式提交頁面資料,後台返回json資料中文資訊亂碼

來源:互聯網
上載者:User

標籤:indicator   print   ace   play   tor   java   java代碼   fail   內容   

本人剛開始接觸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="/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="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="登入" onclick="login()"/><br>41     <%--<p id="p">點擊登入之後我會改變</p>--%>42 </form>43 </body>44 </html>
View Code

然後是後台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 @Controller11 public class MainController {12     @ResponseBody13     /*14     注意了,就是這兒。我之前是這麼寫的。修改之後記得重啟伺服器。15     @RequestMapping("/login")16      */17     @RequestMapping(value = "/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 }
View Code
修改之後記得重啟伺服器
修改之後記得重啟伺服器
修改之後記得重啟伺服器
重要的事說三遍,修改的地方就加上
produces = {"text/html;charset=UTF-8;"}
這幾個字,但是沒有重啟伺服器,搞了四個小時。


springmvc,通過ajax方式提交頁面資料,後台返回json資料中文資訊亂碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.