我不确定我这样做的方式有什么问题...... 我得到一个400错误,说这是一个错误的请求,但我发现我的语法没有任何问题。
$.ajax({
url : '/my_project/rest/runs/1234?token=moo',
type : 'POST',
data: { job_position : JSON.stringify(38) },
contentType: 'application/json',
dataType: 'json',
success : function(html) {
}
});
接收控制器:
@RequestMapping(value="/runs/{userId}", method = RequestMethod.POST, consumes = {"application/json"})
public @ResponseBody boolean myMethod(@PathVariable String userId, @RequestParam("token") String authenticationToken, @RequestBody @Valid Long job_position){
return true;
}
答案 0 :(得分:2)
您的数据部分是否缺少引号? data:{“job_position”:JSON.stringify(38)}
只是一个想法。
答案 1 :(得分:2)
/my_project/rest/runs/1234?token=moo
- 这是GET请求sintax
使
url : '/my_project/rest/runs/1234'
和
data: { "job_position" : JSON.stringify(38) , "token" : "moo"}
如此完整的请求看起来像
$.ajax({
url : '/my_project/rest/runs/1234',
type : 'POST',
data: { "job_position" : 38, "token" : "moo"},
contentType: 'application/json',
dataType: 'json',
success : function(html) {
}
});
答案 2 :(得分:1)
您实际上并未在请求中发送JSON,jQuery会将您的对象转换为查询字符串。为了防止这种情况,请自行进行字符串化。
$.ajax({
url : '/my_project/rest/runs/1234',
type : 'POST',
data: JSON.stringify({ job_position : 38, token: 'moo' }),
contentType: 'application/json',
dataType: 'json',
success : function(html) {
}
});