我创建了一个页面并向服务器提交了一个post请求,jquery代码就像这样
jquery代码:
$("#button").click(function() {
var book = {
name: "book123",
isbn: "123456"
};
$.post("book/add", book, function(data) {
console.debug(data);
});
});
Spring控制器代码:
@RequestMapping(value = "/add",method = RequestMethod.POST)
public @ResponseBody String addBook(
@RequestBody Book book, HttpServletResponse response) throws Exception {
book.setRanking(DEFAULT_RANKING);
Book returnbook = bookService.createBook(book);
return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(returnbook);
}
但它有错误,在firebug中,我收到此错误代码:
NetworkError:415不支持的媒体类型 - / book / add
请求标头信息是这样的:
接受 / 接受编码gzip,deflate
Accept-Language en; q = 0.8,en-us; q = 0.5
内容长度24
Content-Type application / x-www-form-urlencoded;字符集= UTF-8
DNT 1
User-Agent Mozilla / 5.0(Windows NT 6.1; WOW64; rv:24.0)Gecko / 20100101 火狐/ 24.0
X-Requested-With XMLHttpRequest
我认为内容类型不正确,如粗体。如何解决这个问题?谢谢!
答案 0 :(得分:1)
您可以使用jQuery的ajax函数而不是post,您可以在其中指定类型。
要查看如何使用它,请查看this SO帖子
最好将@RequestMapping上的consumes
变量设置为“application / json”