解决拦截器对ajax请求的拦截实例详解

网友投稿 284 2023-06-23


解决拦截器对ajax请求的拦截实例详解

解决拦截器对ajax请求的的拦截

拦截器配置:

public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {

//获取判定登陆的session是否存在

String token = (String) request.getSession().getAttribute("token");

String postId = (String) request.getSession().getAttribute("postId");

if(token == null || token == ""){

String XRequested =request.getHeader("X-Requested-With");

if("XMLHttpRequest".equals(XRequested)){

response.getWriter().write("IsAjax");

}else{

response.sendRedirect("/m-web/user/toLogin");

}

return false;

}

if(postId == null || postId == ""){

String XRequested =request.getHeader("X-Requested-With");

if("XMLHttpRequest".equals(XRequested)){

response.getWriter().write("IsAjax");

}else{

response.sendRedirect("/m-web/user/toLogin");

}

return false;

}

return true;

}

1、判断 String XRequested =request.getHeader("X-Requested-With") 的值,目的是判断是否是ajax请求。

2、response.getWriter().write("IsAjax");写出一个响应的数据给ajax,这样就可以在ajax里面做判断

判断的方式存在两种方式:

1)直接在ajax里面做判断(不建议)

success:function(data){

if(data == "IsAjax"){

window.location.href="m-web/user/toLogin"

return;

}

}

2)改ajax源码然后在做压缩,是针对全局的方式来修改的(建议)

if ( isSuccess ) {// if no content

if ( status === 204 || s.type === "HEAD" ) {

statusText = "nocontent";

// if not modified

} else if ( status === 304 ) {

statusText = "notmodified";

// If we have data, let's convert it

} else {

statusText = response.state;

success = response.data;

error = response.error;

isSucceshttp://s = !error;

//解决ajax拦截问题

var result = responses.text;

QUJygrBjg if(result.indexOf("IsAjax")>=0){

window.location.href="m-web/user/toLogin";

return;

}

}

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:浅谈Java线程并发知识点
下一篇:使用BootStrap建立响应式网页——通栏轮播图(carousel)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~