Spring-MVC - JSON ajax发布到控制器错误输出

时间:2014-07-02 15:34:28

标签: java javascript ajax json spring-mvc

相关JS

$.ajax({
    type : "POST",
    contentType : 'application/json; charset=utf-8',
    dataType : 'json',
    url : "post",
    data : JSON.stringify(person),
    success : function() {

    },
    error : function() {
        alert("Error");
    }
});

相关控制器代码:

@ResponseStatus(HttpStatus.OK)
@RequestMapping(value = "/post", method = RequestMethod.POST)
public void posted(@RequestBody Person person) {
    System.out.println("Post");
    System.out.println(person.toString());
}

问题:

发布后,控制器的行为就像一切正常。我的print语句为fire,person.toString()产生预期的结果。但是,我的ajax调用失败了,警告"错误"并且我无法弄清楚原因,因为除此之外,一切正常。

我尝试使用Postman手动发布JSON,并且我得到了#34; 415不支持的媒体类型"的响应,经过一些挖掘,我仍然不知道如何处理此错误,以便我的success()函数触发。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

jQuery中.ajax()函数的dataType属性是"您期望从服务器返回的数据类型。"

如果您未在控制器中输出json,则应将其删除。

有关详细信息,请参阅doc

答案 1 :(得分:-1)

删除它:

contentType : 'application/json; charset=utf-8',

因为您的内容类型是从开头的纯文本:

System.out.println("Post");

仅当内容为json时,该contentType才有效。