解决拦截器对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 相关文章推荐
javascript 硬盘序列号+其它硬件信息
Dec 23 Javascript
input+select(multiple) 实现下拉框输入值
May 21 Javascript
基于jquery的网页SELECT下拉框美化代码
Oct 28 Javascript
JavaScript与HTML的结合方法详解
Nov 23 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
Javascript中的 “&” 和 “|” 详解
Feb 02 Javascript
Js利用console计算代码运行时间的方法示例
Sep 24 Javascript
js中let和var定义变量的区别
Feb 08 Javascript
vue2.0 实现页面导航提示引导的方法
Mar 13 Javascript
剖析Angular Component的源码示例
Mar 23 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
Apr 09 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得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
js父页面中使用子页面的方法
2016/01/09 Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
2016/07/07 Javascript
Javascript中indexOf()和lastIndexOf应用方法实例
2016/08/24 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
React-Native使用Mobx实现购物车功能
2017/09/14 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
基于js Canvas实现二次贝塞尔曲线
2018/12/25 Javascript
详解async/await 异步应用的常用场景
2019/05/13 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中实现参数类型检查的简单方法
2015/04/21 Python
python对html代码进行escape编码的方法
2015/05/04 Python
python抖音表白程序源代码
2019/04/07 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
基于Python实现签到脚本过程解析
2019/10/25 Python
夜大自我鉴定
2013/10/31 职场文书
迟到检讨书大全
2014/01/25 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
幼儿园欢迎词范文
2015/01/26 职场文书
毕业答辩开场白范文
2015/05/27 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
导游词之云南省玉龙雪山
2019/12/19 职场文书
Django程序的优化技巧
2021/04/29 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
nginx lua 操作 mysql
2022/05/15 Servers