我是靠谱客的博主 慈祥毛巾,最近开发中收集的这篇文章主要介绍JsonParseException: Unrecognized token ‘username‘: was expecting表单提交登陆数据报错,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.问题追溯

很长一段时间都在做前后端分离的vue案例,今天突然使用Thymeleaf提交表单登录到security登陆验证时一直报错
JsonParseException: Unrecognized token ‘username’: was expecting
但是使用Postman提交json数据时却没有问题,那我就可以确定是表单数据不能正确解析的问题


/**
* 1.获取用户名和密码
*/
@Override
public Authentication attemptAuthentication(HttpServletRequest req, HttpServletResponse res)
throws AuthenticationException {
try {
User user = new ObjectMapper().readValue(req.getInputStream(), User.class);
System.out.println("1.获取用户名和密码=="+user);
return authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(user.getUsername(), user.getPassword(), new ArrayList<>()));
} catch (IOException e) {
throw new RuntimeException(e);
}
}

报错位置:
User user = new ObjectMapper().readValue(req.getInputStream(), User.class);

2.解决办法

JSON.stringify(formData)打包json数据


$("button[type='button']").click(function () {
var formData = {
username: $("#username").val(),
password: $("#password").val()
};
$.post("[[@{/}]]admin/login", JSON.stringify(formData),
function (data) {
alert("Data Loaded: " + data);
});
});
})

我是这样就可以正常使用了,如果不行你还可以尝试:

$.ajax({
type: "POST",
url: "xxxx",
contentType:‘application/json;charset=utf-8‘,
data:JSON.stringify(allData),
success: function (data) {
alert(data);
}
});

最后

以上就是慈祥毛巾为你收集整理的JsonParseException: Unrecognized token ‘username‘: was expecting表单提交登陆数据报错的全部内容,希望文章能够帮你解决JsonParseException: Unrecognized token ‘username‘: was expecting表单提交登陆数据报错所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部