Я создал страницу и отправлю запрос на отправку на сервер, код jquery вроде этого
Код jquery:
$("#button").click(function() {
var book = {
name: "book123",
isbn: "123456"
};
$.post("book/add", book, function(data) {
console.debug(data);
});
});
Код контроллера пружины:
@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
информация заголовка requst такова:
Accept/Accept-Encoding gzip, deflate
Accept-Language en; q = 0.8, en-us; q = 0.5
Content-Length 24
Приложение Content-Type/x-www-form-urlencoded; кодировка = UTF-8
DNT 1
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv: 24.0) Gecko/20100101 Firefox/24.0
X-Requested-с XMLHttpRequest
Я думаю, что тип контента неверен, как выделено жирным шрифтом. Как решить эту проблему? Благодарю!
Вы можете использовать функцию jQuery ajax вместо post, где вы можете указать тип. Чтобы узнать, как использовать его, проверить это ТАК размещать Также было бы хорошо, чтобы установить consumes
переменную на @RequestMapping в "приложения /JSON"