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


Posted in Javascript onDecember 21, 2016

解决拦截器对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;
          isSuccess = !error;
          //解决ajax拦截问题
          var result = responses.text;
          if(result.indexOf("IsAjax")>=0){
            window.location.href="m-web/user/toLogin";
            return;
          }
        }
      }

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

Javascript 相关文章推荐
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 Javascript
javascript学习笔记(十一) 正则表达式介绍
Jun 20 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
May 07 Javascript
js jquery ajax的几种用法总结(及优缺点介绍)
Jan 28 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
Aug 25 Javascript
JQuery实现左右滚动菜单特效
Sep 28 Javascript
Bootstrap所支持的表单控件实例详解
May 16 Javascript
详解Vue.js分发之作用域槽
Jun 13 Javascript
解决vue打包项目后刷新404的问题
Mar 06 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
Oct 19 Javascript
浅谈Vue项目骨架屏注入实践
Aug 05 Javascript
原生JavaScript实现随机点名表
Jan 14 Javascript
原生的强大DOM选择器querySelector介绍
Dec 21 #Javascript
懒加载实现的分页&&网站footer自适应
Dec 21 #Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
Dec 21 #Javascript
Vue.js 递归组件实现树形菜单(实例分享)
Dec 21 #Javascript
详解jQuery选择器
Dec 21 #Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 #Javascript
js实现可输入可选择的select下拉框
Dec 21 #Javascript
You might like
PHP 网页过期时间的控制代码
2009/06/29 PHP
php读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
php实例分享之html转为rtf格式
2014/06/02 PHP
使用PHP处理数据库数据如何将数据返回客户端并显示当前状态
2016/02/16 PHP
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
配置Grunt的Task时通配符支持和动态生成文件名问题
2015/09/06 Javascript
常用的Javascript设计模式小结
2015/12/09 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
ionic由于使用了header和subheader导致被遮挡的问题的两种解决方法
2016/09/22 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
vue项目打包之开发环境和部署环境的实现
2020/04/23 Javascript
vue实现信息管理系统
2020/05/30 Javascript
微信小程序实现多图上传
2020/06/19 Javascript
Python脚本暴力破解栅栏密码
2015/10/19 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
python实现归并排序算法
2018/11/22 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
Python实现网站表单提交和模板
2019/01/15 Python
python中栈的原理及实现方法示例
2019/11/27 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
CSS Houdini实现动态波浪纹效果
2019/07/30 HTML / CSS
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
FC-Moto丹麦:欧洲最大的摩托车服装和头盔商店之一
2019/08/20 全球购物
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
大学生党员自我评价范文
2014/04/09 职场文书
幼儿园安全责任书
2014/04/14 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
2014年财务经理工作总结
2014/12/08 职场文书
索尼ICF-5900W收音机测评
2022/04/24 无线电