400 Ajax调用Spring控制器时出现错误请求错误

时间:2014-04-07 09:55:40

标签: javascript jquery ajax spring spring-mvc

我正在尝试将数据发送到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一起使用。我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

您期待@RequestParamPOST / GET参数),但发送JSON作为请求正文。您需要使用@RequestBody代替。

尝试

public String saveDiscussion(@RequestBody Map json) {
    return "hello";
}

另见: