2014-10-10 62 views
7

我使用Spring MVC和AngularJs来创建一个Web应用程序。我发送一个请求到服务器,但我得到400 error bad request。我在Spring servlet配置文件中为json格式配置了消息转换器。我想知道为什么我得到这个错误。为什么我通过AngularJs发布400个不好的请求?

这里是我的角度服务:

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

而在服务器端我有一个Spring MVC控制器,如下所述:

@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 2014-10-10 20:44:51

+0

我无法访问Spring MVC控制器。在Angularjs控制器中,用户的值为 – Pracede 2014-10-10 20:46:51

+0

如果您使用Chrome或IE并打开开发人员工具(F12)并在行“save:function(user){”)上放置断点。运行它,当代码碰到断点时,将鼠标悬停在“用户”上。出现工具提示并显示您正在悬停的项目的值。它是否表示为空或它是否有价值?另一个要尝试的是查看它尝试访问的确切URL(再次使用开发人员工具)。它尝试访问的确切URL可能与您所期望的不同。 – Losbear 2014-10-10 20:54:08

回答

4

问题在于用户表单。我有姓,名,电子邮件,密码,密码1,但用户Java对象不包含密码1属性。当请求提供的json数据与Java对象不一致时,JsonConverter无法与数据匹配到Java Object。

+0

很高兴你知道了! – Losbear 2014-10-20 13:02:51

+0

@Pracede我有同样的问题,显示在萤火虫上的输入是 {“id”:null,“name”:“qweqweqwe”,“users”:{“id”:3,“username”:“Kaminee”, “密码”:“1234”,“email”:“kim @ mail 。com“,”address“:”bhumkar“,”country“:{”countryId“:1,”countryName“:”印度“}}} – Kamini 2016-09-08 08:50:11

相关问题