【问题标题】:Why am I getting 400 bad request with AngularJs post?为什么我在 AngularJs 帖子中收到 400 个错误请求?
【发布时间】:2014-12-06 02:43:51
【问题描述】:

我使用 Spring MVC 和 AngularJs 来创建一个 Web 应用程序。我向服务器发送了一个请求,但我收到了400 error bad request。我在 Spring servlet 配置文件中配置了 json 格式的消息转换器。我想知道为什么会出现此错误。

这是我的角度服务:

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";
}

【问题讨论】:

  • 您传入的“用户”对象是有值还是为空?
  • 我无法访问 Spring MVC 控制器。在 Angularjs 控制器中,用户具有价值
  • 如果您使用 Chrome 或 IE 并打开开发者工具 (F12) 并在“save : function(user) {”行放置断点。运行它,当代码到达断点时,将鼠标悬停在“用户”上。将出现一个工具提示,其中包含您悬停的项目的值。它是说 null 还是有值?要尝试的另一件事是查看它尝试访问的确切 URL(同样,使用开发人员工具)。它尝试访问的确切 URL 可能与您预期的不同。
  • Losbear 我使用 firebug 在 angularjs 端查看用户的价值。用户有价值。但是当请求被发送到服务器时,我有 400 个错误请求。当我删除 @RequestBody 我到达 Spring Controller 但用户对象不包含值
  • 啊,好的。所以“用户”对象与客户端传入的用户对象不匹配。也许客户端的属性之一为空,但服务器端的用户对象不可为空。还要检查名称的大小写。 MVC 尝试为您自动映射它,但如果对象太复杂,它很容易损坏。作为最后的手段(踢球),注释掉“public String createAccount(@RequestBody User user){”并替换为“public String createAccount(@RequestBody string user){”并传递一个带有角度的字符串,看看它是否收到.

标签: java angularjs spring spring-mvc


【解决方案1】:

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

【讨论】:

  • 很高兴你知道了!
  • @Pracede 我也有同样的问题,萤火虫上显示的输入是 {"id":null,"name":"qweqweqwe","users":{"id":3,"username ":"Kaminee","password":"1234","email":"kim@mail .com","address":"bhumkar ","country":{"countryId":1,"countryName":"印度"}}}
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-04
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多