我是靠谱客的博主 慈祥毛巾,最近开发中收集的这篇文章主要介绍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表单提交登陆数据报错所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复