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