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