Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported

记录今日份的bug

在使用SpringBoot + Themleaf时登录请求报错

Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

关键代码如下:

ajax请求:

function login() {
    $.modal.loading($("#btnSubmit").data("loading"));
    var username = $.common.trim($("input[name='username']").val());
    var password = $.common.trim($("input[name='password']").val());
    var captcha = $("input[name='captcha']").val();
    $.ajax({
        type: "post",
        url: ctx + "login",
        data: {
            "username": username,
            "password": password,
            "captcha": captcha,
        },
        success: function (result) {
            if (result.status == 200) {
                console.log(result)
                location.href = ctx + 'index';
            } else {
                $.modal.closeLoading();
                $('.imgcode').click();
                $(".code").val("");
                $.modal.msg(result.msg);
            }
        }
    });
}

后台登录接口:

    @PostMapping("/login")
    @ApiOperation(value = "登录入口")
    @ResponseBody
    public SkyResponse login(@Validated @RequestBody LoginDTO loginDTO) {
        // 生成令牌
        String token = loginService.login(loginDTO.getUsername(), loginDTO.getPassword(), loginDTO.getCaptcha());
        return SkyResponse.success("登录成功!", 1)
                .put("token", token);
    }

两种解决方案:

1.去掉后端参数上的 @RequestBody 注解

2.在前端ajax 请求上设置 contentType 为 "application/json"

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值