我正在尝试在创建更改密码页面时验证用户名和其他字段.问题是Jquery脚本中的AJAX调用没有命中我的controller.i尝试在ajax请求的url字段中给出硬编码路径.
以下是我的脚本
此checkUname函数从其中一个输入字段触发onblur事件.
这是我的MVC控制器
@Controller
public class ArsController
{
@RequestMapping(value="validateCredentials.do",method = RequestMethod.POST)
public String changePass(@RequestParam("uName") String uName,@RequestParam("secQues")String secQues,@RequestParam("secAns") String secAns)
{
System.out.println("AJAX request");
Users dummyUSer = null;
String msg = null;
try
{
dummyUSer = servObj.findUser(uName);
}
catch (ArsException e)
{
System.out.println("error occurred while validating user data during password change");
e.printStackTrace();
}
if(dummyUSer == null)
{
msg = "No user exists with this username";
}
else
{
if(!secQues.equals(dummyUSer.getSecQues()))
{
msg = "Security question is not correct";
}
else
{
if(!secAns.equals(dummyUSer.getSecAns()))
{
msg = "Security answer does not match";
}
}
}
return msg;
}
最佳答案
您应该使用String,而不是在控制器中使用RequestParam.因为当我们发布JSON数据时,它不会作为Request中的单个参数,而是在控制器中作为String接收.获得String后,将其转换为JSON对象,然后相应地获取您的值.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。