2014-10-10 2 views
7

Я использую Spring MVC и AngularJs для создания веб-приложения. Я отправляю запрос на сервер, но получаю 400 error bad request. Я настраиваю конвертер сообщений для json-формата в файле конфигурации сервлета Spring. Мне интересно, почему я получаю эту ошибку.Почему я получаю 400 плохих запросов с помощью сообщения AngularJs?

Вот мой угловой сервис:

save : function(user) { 
    return $http({ 
     method: 'POST', 
     url: '/app-web/user/create', 
     contentType: "application/json", 
     data:user 
    }); 
} 

А на стороне сервера У меня есть MVC контроллер Spring, как описано ниже:

@RequestMapping(value="/user/create", method= RequestMethod.POST) 
@ResponseBody 
public String createAccount(@RequestBody User user){ 
    //some logic 
    return "Ok"; 
} 

я заметил кое-что еще: когда я удалить @RequestBody в контроллер у меня нет ошибки 400, но пользователь null:

@RequestMapping(value="/user/create", method= RequestMethod.POST) 
@ResponseBody 
public String createAccount(User user){ 
    //some logic 
    return "Ok"; 
} 
+0

Имеет ли объект «пользователь», который вы передаете, имеет значение или он равен нулю? – Losbear

+0

Я не могу дотянуться до контроллера Spring MVC. В контроллере Angularjs пользователь имеет значение – Pracede

+0

Если вы используете Chrome или IE и откройте инструменты разработчика (F12) и поместите контрольную точку в строку «save: function (user) {". Запустите его, и когда код попадает в точку останова, наведите указатель мыши на «пользователь». появляется всплывающая подсказка со значением элемента, над которым вы нависаете. Говорит ли оно, что это нулевое значение или оно имеет ценность? Еще одна вещь, которую стоит попробовать - это посмотреть на точный URL-адрес, к которому он пытается получить доступ (опять же, используя инструменты разработчика). Точный URL-адрес, который он пытается получить, может отличаться от ожидаемого. – Losbear

ответ

4

Проблема была о форме пользователя. У меня было имя, имя, адрес электронной почты, пароль, пароль1, но пользовательский Java-объект не содержит атрибутов password1. Когда данные json, предоставленные запросом, не соответствуют объекту Java, JsonConverter не может соответствовать данным в Java Object.

+0

Рад, что вы это поняли! – Losbear

+0

@Pracede У меня такая же проблема, вход, который показывает на firebug: {"id": null, "name": "qweqweqwe", "users": {"id": 3, "username": "Kaminee", " «пароль»: «1234», «электронная почта»: «kim @ mail .com "," address ":" bhumkar "," country ": {" countryId ": 1," countryName ":" India "}}} – Kamini

Смежные вопросы