Я пытаюсь использовать службу REST, которую я создал в API Spring, когда я тестирую ее с помощью Swagger, она ведет себя так, как ожидалось, но при попытке использовать ее из моего пользовательского интерфейса я получаю:Angularjs Bad Request (400)
rest/login/getCredentials 400 (Bad Request)
Я обычно использую @RequestBody
, но в данном случае я использовал @RequestParam
, что может быть источником проблем? Когда я вызываю службу из UI нить, кажется, останавливается на контроллере и единственное, что консоль показывает меня:
2016-03-10 19:15:02.997 INFO 8852 --- [nio-8090-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2016-03-10 19:15:03.016 INFO 8852 --- [nio-8090-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 19 ms
JS
$scope.recoverPassword = function(){
$http.post('rest/login/getCredentials',$scope.email).success(function (loginResponse) {
if(loginResponse.code == 200){
alert(loginResponse.codeMessage);
}else{
alert(loginResponse.codeMessage);
}
$scope.showLogin = true;
});
};
Контроллер
@RequestMapping(value = "/getCredentials", method = RequestMethod.POST)
@Transactional
public LoginResponse getCredentials(@RequestParam("email")String email){
LoginResponse response = new LoginResponse();
Boolean state = loginService.getCredentials(email);
if(state){
response.setCode(200);
response.setCodeMessage("Credentials send, please check your email.");
}else{
response.setCode(401);
response.setCodeMessage("Invalid email.");
}
return response;
}
Отладчик браузера показывает только полезную нагрузку запроса: «[email protected]»
Мне было интересно, может ли кто-нибудь указать мне в правильном направлении, я уверен, что это должно быть очень глупо ошибочно.
EDIT: Изменен от @Param to Body для lols, и это сработало, но я бы хотел знать, почему он не работает с Param.