今天用Ajax做邮箱登录,
当用拦截器去控制跳转(拦截器里面return false)的时候,数据库中没有的用户也能实现跳转
很奇怪
为什么??
因为我在Ajax的回调函数里面,判断页面跳转的时候,只是做了result!=null
换成result!=null && result!=""
即解决了。
<script type="text/javascript">
function sel() {
$("#btn").click(function () {
var val=$("form").serialize();
$.post("userController/findOneUser",val,function (result) {
if(result!=null && result!="a"){
window.location.href="main.jsp";
}else{
window.location.href="login.jsp";
}
})
})
}
</script>
拦截器
public class MyInter implements HandlerInterceptor {
/**
* 执行的时机:在进入控制单元之前执行
*
* 该方法的返回值决定了是否执行后续的代码,如果是true就继续执行后续代码
*
* 如果是false 就不会执行
*
* */
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("preHandle");
return false;
}
}
在使用Ajax进行邮箱登录时,发现SpringMVC的拦截器未能阻止数据库中不存在的用户进行跳转。问题在于Ajax回调函数仅检查了result不为空,修正为result不为空且不等于空字符串后,拦截器恢复正常工作。
1085

被折叠的 条评论
为什么被折叠?



