用@RequestBody报错400,415的问题

2022-09-09 12:38:54

报错代码

    java 部分

@Controller 
public class UserController { 
        @Resource private UserService userService;
        @RequestMapping(value="/user",method=RequestMethod.POST, produces="application/json")
        @ResponseBody 
        public User selectByPrimaryKey(@RequestBody Integer id ){ 
             System.out.println(userService.selectByPrimaryKey(id).toString()); 
              return userService.selectByPrimaryKey(id); 
        } }

js部分

    $.ajax({
        data:JSON.stringify({"id":1}),
        dataType:"JSON",
        method:"POST",
        url:"http://localhost:8080/user",
        headers:{"content-Type":"application/json"},
        success:function (data) {
            var string = "<tr><td>"+data.id+"</td><td>"+data.user_name+"</td><td>"+data.age+"</td><td>"+data.sex+"</td></tr>";
            $("#table").append(string);
        }
    })

注意到了吗

  出错原因是 在java代码的传递的参数 不能是单个的变量Integer id  应该是 实体类 User user

  正确的java如下:

 @Controller 
public class UserController { 
        @Resource private UserService userService;
        @RequestMapping(value="/user",method=RequestMethod.POST, produces="application/json")
        @ResponseBody 
        public User selectByPrimaryKey(@RequestBody User user ){
             System.out.println(userService.selectByPrimaryKey(user.id).toString()); 
              return userService.selectByPrimaryKey(user.id); 
        } }

   我是搞了一整天才明白。   献上两个比较有帮助的文章,无意间第一篇文章解决了我的问题。

https://blog.csdn.net/u011050607/article/details/79853648

   https://blog.csdn.net/java_xxxx/article/details/81163432

    希望能帮到各位。

    多多发帖,互相学习,共同进步。

  • 作者:超凡脱俗 ~.~
  • 原文链接:https://blog.csdn.net/qq_16746441/article/details/83964131
    更新时间:2022-09-09 12:38:54