【问题标题】:400 Bad Request with a $http.post that does not contains a body带有不包含正文的 $http.post 的 400 错误请求
【发布时间】:2023-03-21 02:00:02
【问题描述】:

我有一个 Angular js 应用程序,并且在尝试发出以下发布请求时:

$resource('api/'+API_VERSION+'/projects/:projectId/users/:userId')
  .save(
          {
           projectId:$scope.project.id,
           userId:id
         },
         {}
         ,function(){
        // Handle callback
       });

我收到 400 错误请求错误。 请求由 spring RestController 处理,方法如下所示:

@RequestMapping(value = "/projects/{projectId}/users/{userID}",
    method = RequestMethod.POST,
    produces = MediaType.APPLICATION_JSON_VALUE)
  @RolesAllowed(AuthoritiesConstants.USER)
  void addUsers(@PathVariable Long projectId, @PathVariable Long userId) {
    log.debug("REST request to add admin to project");
    projectService.addUser(projectId, userId);
  }

我检查了发送到服务器的请求,没有什么不好的事情发生。

url正确(所有参数的类型都是合法的),内容类型设置为Application json。 提前感谢您的帮助。

【问题讨论】:

    标签: angularjs spring rest


    【解决方案1】:

    您的 API 使用 JSON 并返回 void,所以我认为您的 @RequestMapping 中应该有 consumes = MediaType.APPLICAT_JSON_VALUE

    [编辑]:

    除了使用注释之外,您的后端一切都很好。您可以尝试使用以下代码发出您的帖子请求吗:

    $resource('api/'+API_VERSION+'/projects/:projectId/users/:userId',
        {projectId: $scope.project.id, userId: id}).$save();
    

    或者再次创建资源实例:

    var Project = $resource('api/'+API_VERSION+'/projects/:projectId/users/:userId',
        {projectId: $scope.project.id, userId: id});
    
    var newProject = new Project();
    newProject.$save();
    

    让我知道它是否有效?

    【讨论】:

    • 首先感谢您的回答,我试过了,但我没有解决我的问题。我猜问题来自我的客户的请求,而不是服务器,因为功能测试工作正常,例如以下调用工作正常:restProjectResourceMock.perform(post("/api/" + Application.API_VERSION + "/projects/ " + projectDTO.getId() + "/users/" + user.getId())) .andExpect(status().isOk());以及如果正确添加到项目中的用户
    • 嘿,我已经编辑了我的答案,并为您的发帖请求提供了一些建议。我希望它能解决问题。
    • 再次非常感谢你:),这不是真正的问题,但我终于弄明白了,这是因为在我的后端,用户 ID 是用大写的 I 和 D 写的,而在参数中是juste Id ,所以一旦我确定它是一样的,它就可以正常工作了
    • 啊,是的,我现在看到了!该死的,有时我们应该寻找最简单的解释。很抱歉我错过了!
    猜你喜欢
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    相关资源
    最近更新 更多