前端ajax提交数据400/415解决方式

ajax不同的提交方式对应后端接收方式不同

当后端用@ResquestParam接收时

@RequestMapping(value = "adminLogin",method = RequestMethod.POST)
    @ApiOperation(value = "用户登录",notes = "用户名密码不能为空")
    public AdminUserResult adminLogin(@RequestParam String userName,@RequestParam String passWord, HttpServletRequest request, HttpServletResponse response){
        String header = request.getHeader("User-Agent");//如果该值为""或者null则为浏览器登录,否则是手机端登录


        return adminUserService.login(userName, passWord);
    }

前端的data用js对象传递

$('#btnLogin1').click(function () {
            var userName = $("#userName").val();
            var passWord = $("#passWord").val();
            var param = {'userName':userName,'passWord':passWord}
            $.ajax({
                url:"/AdminUserController/adminLogin",
                type: 'POST',
                dataType:'json',
//                data: JSON.stringify({
//                    userName:userName,
//                    passWord:passWord
//                }),
                data: param,
//                headers:{
//                    "Content-Type": "application/json"
//                },
                success:function (data) {
                    console.log("请求数据成功,数据是"+data)
                    console.log(data.status)
                    if(data.status==200) {//登录成功
                        location.href = "index.html"
                    }
                }
            })
        })

当后端用@RequestBody接收数据时

@RequestMapping(value = "adminLogin1",method = RequestMethod.POST)
    @ApiOperation(value = "用户登录",notes = "用户名密码不能为空")
    public AdminUserResult adminLogin1(@RequestBody AdminUser adminUser, HttpServletRequest request, HttpServletResponse response){
        String header = request.getHeader("User-Agent");//如果该值为""或者null则为浏览器登录,否则是手机端登录
        String userName = adminUser.getUserName();
        String passWord = adminUser.getPassWord();

        return adminUserService.login(userName, passWord);
    }

要将data转为json格式并添加

headers:{
“Content-Type”: “application/json”
}

 $('#btnLogin2').click(function () {
            var userName = $("#userName").val();
            var passWord = $("#passWord").val();
            var param = {'userName':userName,'passWord':passWord}
            $.ajax({
                url:"/AdminUserController/adminLogin1",
                type: 'POST',
                dataType:'json',
//                data: JSON.stringify({
//                    userName:userName,
//                    passWord:passWord
//                }),
                data: JSON.stringify(param),
                headers:{
                    "Content-Type": "application/json"
                },
                success:function (data) {
                    console.log("请求数据成功,数据是"+data)
                    console.log(data.status)
                    if(data.status==200) {//登录成功
                        location.href = "index.html"
                    }
                }
            })
        })

使用swagger测试后端接口没问题,前端报400/415,按照上面的方法问题解决了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值