spring mvc @RequestBody接受post json对象

jq ajax通过post json对象

遇到的HTTP 415/400问题错误解决方案:http://www.linuxidc.com/Linux/2014-04/99928.htm

客户端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<html>
<head>
<meta http-equiv= "Content-Type"  content= "text/html; charset=UTF-8" >
<title>Insert title here</title>
<script type= "text/javascript"
     src= "<%=basePath%>resources/scripts/jquery-2.0.3.min.js" ></script>
<script type= "text/javascript" >
$( function (){
     $( "#send" ).click( function (){
         var  jsondata = $( "#jsondata" ).val();
         var  jsonobj = JSON.parse(jsondata)
         
         var  callback =  function  (data) {
             $( "#result" ).html(JSON.stringify(data))
         }
         
         $.postJSON( '<%=basePath%>api/user/test' , jsonobj, callback)
 
         });
     })
 
     $.postJSON =  function (url, data, callback) {
         return  jQuery.ajax({
             'type'  'POST' ,
             'url'  : url,
             'contentType'  'application/json' ,
             'data'  : JSON.stringify(data),
             'dataType'  'json' ,
             'success'  : callback
         });
     };
</script>
</head>
<body>
     JSON对象
     <br>
     <textarea id= "jsondata"  cols= "60"  rows= "5" >
{ "id" :2, "gender" :0, "mobile" : "15072370640" , "password" : "123456" , "accessToken" : "fd6bf3dd3cca4b0ca7c9099447994dba" }
     </textarea><br>
 
     <button id= "send" >POST</button><br>
 
     <font color= "red"  id= "result" ></font>
</body>
</html>


spring mvc 服务端:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@RequestMapping (value= "/test" ,method=RequestMethod.POST)
public  @ResponseBody  Map<String, Object> testPostJson(
         @RequestBody   UserForm userForm,
         BindingResult bindingResult) {
         
     Map<String, Object> map =  new  HashMap<String, Object>();
     if  (bindingResult.hasErrors()) {
         map.put( "errorCode" "40001" );
         map.put( "errorMsg" , bindingResult.getFieldError().getDefaultMessage());
     }
     
     map.put( "user" , userForm);
     return  map;
}

测试:

结果

?
1
{ "user" :{ "name" : null , "id" :2, "password" : "123456" , "avatar" : null , "gender" :0, "mobile" : "15072370640" , "accessToken" : "fd6bf3dd3cca4b0ca7c9099447994dba" }}


注意:

@ResponseBody 导致的中文乱码问题见:http://my.oschina.net/freegeek/blog/287127

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值