我跟着网课做的小项目,电商系统,问题出在修改密码上,我现在可以用“http://localhost:8080/users/change_password?oldPassword=xx&newPassword=xx”
实现修改密码,但一但在前端页面修改时,则会跳出提示原密码错误
xml:
控制层:
前端
错误:
真的跪求大佬了
补充:这是用链接直接访问的结果,正确,小白刚学,有没指出的可以问我
你把前端ajax请求type='POST' 改成'GET'
试试
还是原来的样子,不过谢谢
打断点,走一下,看是什么条件导致报这个错
请求方式不对。你链接能成功,是因为参数是直接在url后面拼接的get请求;而你的ajax却是post
改进方式一:统一为get请求,ajax的type=get,且ajax中的data参数全部拼接到url的连接后面;
改进方式二(推荐):统一改为post请求,即后端@RequestMapping(...)里面追加(method = RequestMethod.POST) 或者 直接改为@PostMapping
@RequestMapping("change_password")
public JsonResult<Void> changePassword(@RequestBody Map<String, String> params,
HttpSession session){
Integer uid = getUidFromSession(session);
String username = getUsernameFromSession(session);
String oldPassword = params.get("oldPassword");
String newPassword = params.get("newPassword");
userService.changePassword(uid,username,oldPassword,newPassword);
return new JsonResult<>(OK);
}
谢谢各位了,但我找到了问题原因(大概?)我删除了项目cookie,之后密码修改成功,所以报错应该是cookie信息与登录信息不匹配;
这个解决方法感觉很扯淡,毕竟cookie总会积累起来,以后说不定还会报这种错,不过我小白一个,项目能动就行了
因为暂时自己解决了,所以结帖就给首个回答了(不知道是不是这么搞)
– guo‘s 1年前