springBoot获取angularJS发送的参数问题分析解决

第一种:angularJS发送的是字符串拼接参数如:http://localhost:89/login?userName=admin

angularJS需要这样写重点红色字

$http({
                method: "POST",
                url: "../brand/delete.do",
                data: {
                    userName: $scope.user.userName
            password: $scope.user.password }, headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, //将其变为 form-data 参数形式 transformRequest: function(obj) { //序列化参数 var str = []; for (var s in obj) { str.push(encodeURIComponent(s) + "=" + encodeURIComponent(obj[s])); } return str.join("&"); } }).success( //请求成功 } );

 controller这样写

@RequestMapping(value = "/verLogin", method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
@ResponseBody
public Object getUser(UserEntity user) {
        return userService.getUser(user);
 }

 第二种:angularJS发送的是json参数如{"user_no":"admin","password":"123456"}

angularJS代码这样写重点红色字

$http({

            url:'http://'+host+'/user/verLogin',//验证表单的接口
            method:'post',
            data:{
                'user_no':$scope.user.user_no,
                'password':$scope.user.password,
            },
            headers:{'Content-Type':'application/json;charset=UTF-8'}, //将其变为 json 参数形式          
        }).success(function(data){
            console.log(data);
        });

 controller这样写

重点是在方法参数前增加了@RequestBody的注解

    @RequestMapping(value = "/verLogin", method = RequestMethod.POST,produces = "application/json;charset=UTF-8")
    @ResponseBody
    public Object getUserByLogin(@RequestBody UserEntity user) {
        return userService.getUserByLogin(user);
    }

 这些是本人从一个初学SpringBoot、angularJS的角度实验总结的坑。

原文地址:https://www.cnblogs.com/lijl/p/11942218.html