Content type ‘applicationx-www-form-urlencoded;charset=UTF-8‘ not supported

    技术2025-11-05  21

    记录今日份的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"

     

     

     

     

     

     

     

    Processed: 0.019, SQL: 9