我正在尝试将数据发送到Spring控制器,但我在浏览器控制台中收到了400 badrequest错误。 这是我的代码:
的javascript:
function insertDiscussion(title, content,tags) {
$.ajax({
async:false,
url: 'save',
contentType: 'application/json; charset=utf-8',
type: 'POST',
dataType: 'json',
data: {
"title": title,
"content": content,
"tags":tags
},
success: function(data) {
generateNoty(data, "warning");
}
});
}
控制器:
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String saveDiscussion(
@RequestParam String title,
@RequestParam String content, @RequestParam(value="tags") String[] tags) {
return "hello";
}
如果我们不发送数组,示例正在工作。当我试图发送数组时,它给出了400 Bad Request错误。
如果我使用链接访问相同的控制器,它的工作正常,但它不能与jquery ajax一起使用。我错过了什么吗?
答案 0 :(得分:3)
您期待@RequestParam
(POST
/ GET
参数),但发送JSON
作为请求正文。您需要使用@RequestBody
代替。
尝试
public String saveDiscussion(@RequestBody Map json) {
return "hello";
}
另见: