解决拦截器对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 相关文章推荐
执行iframe中的javascript方法
Oct 07 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
Jun 27 Javascript
JavaScript 里的类数组对象
Apr 08 Javascript
JS模拟Dialog弹出浮动框效果代码
Oct 16 Javascript
angularjs表格分页功能详解
Jan 21 Javascript
最细致的vue.js基础语法 值得收藏!
Nov 03 Javascript
详解通过JSON数据使用VUE.JS
May 26 Javascript
Node.js连接mongodb实例代码
Jun 06 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
Jun 28 Javascript
详解Node.js利用node-git-server快速搭建git服务器
Sep 27 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
May 17 Javascript
JavaScript Reflect Metadata实现详解
Dec 12 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
espresso double下 咖啡粉超细时 饼压力对咖啡的影响
2021/03/03 冲泡冲煮
如何冲泡挂耳包咖啡?技巧是什么
2021/03/04 冲泡冲煮
Zend的MVC机制使用分析(二)
2013/05/02 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
jQuery插件开发全解析
2012/10/10 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
浅谈javascript中的三种弹窗
2016/10/21 Javascript
微信小程序 定位到当前城市实现实例代码
2017/02/23 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
Python使用进程Process模块管理资源
2020/03/05 Python
Python内置函数locals和globals对比
2020/04/28 Python
使用HTML5原生对话框元素并轻松创建模态框组件
2019/03/06 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
德国百年厨具品牌WMF美国站:WMF美国
2016/09/12 全球购物
Stührling手表官方网站:男女高品质时尚手表的领先零售商
2021/01/07 全球购物
考博自荐信
2013/10/25 职场文书
电脑教师的自我评价
2013/12/18 职场文书
个人自荐书
2013/12/20 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
初中同学会活动方案
2014/08/22 职场文书
违反交通安全法检讨书
2014/10/24 职场文书
教师个人发展总结
2015/02/11 职场文书
车间班组长竞聘书
2015/09/15 职场文书
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python
Go使用协程交替打印字符
2021/04/29 Golang