Я хочу отправить данные JSON в обработчик POST моего контроллера.Я делаю это на стороне клиента:
var userName = $('#userName').val();
var password = $('#password').val();
var mail = $('#mail').val();
var admin =$("#admin").is(':checked');
var user = {userName: userName, password: password, mail: mail, admin:admin};
$.ajax({
async : false,
type:'POST',
url: '/uxiy/webapp/uxmer',
data: user,
dataType: 'json',
success: function(data) {
...
},
error: function(data) {
...
}
});
Мой контроллер Spring выглядит следующим образом:
@RequestMapping(method = RequestMethod.POST)
public void createUser(HttpServletResponse response, @RequestBody User user) {
user.setName("POST worked");
//todo If error occurs response.sendError(HttpServletResponse.SC_NOT_FOUND);
response.setStatus(HttpServletResponse.SC_OK);
}
Однако, когда я отправляю свои данные, я получаю эту ошибку в Firebug:
"NetworkError: 415 Неподдерживаемый тип носителя"
Что не так?
PS: Пример сведений о Firebug POST:
Parameters application/x-www-form-urlencoded
admin true
mail user@user.com
password r
userName userx
Source
userName=userx&password=r&mail=user%40user.com&admin=true
PS2: После того, как я добавил
contentType: 'application/json',
, он начал давать
"NetworkError: 400 Bad Request"
В чем может быть проблема, выполнение сериализации и т. Д.?
PS3: Здесь: http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/ здесь написано:
Если имеются ошибки проверки, возвращается HTTP 400 с сообщениями об ошибках, в противном случаевозвращается HTTP 200.
У меня 400 Ошибка неверного запроса.Может быть, проблема связана с этим?