解决拦截器对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 相关文章推荐
动态加载js的几种方法
Oct 23 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
Nov 12 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
Sep 30 Javascript
XMLHttpRequest Level 2 使用指南
Aug 26 Javascript
JavaScript探测CSS动画是否已经完成的方法
Aug 30 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
Dec 12 Javascript
一文让你彻底搞清楚javascript中的require、import与export
Sep 24 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
Vue中Quill富文本编辑器的使用教程
Sep 21 Javascript
vue用BMap百度地图实现即时搜索功能
Sep 26 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
May 16 Javascript
Node.js API详解之 readline模块用法详解
May 22 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 设计模式之观察者模式介绍
2012/02/22 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP设计模式之工厂模式定义与用法详解
2018/04/03 PHP
jquery分页对象使用示例
2014/04/01 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
AngularJS学习笔记之基本指令(init、repeat)
2015/06/16 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
省市二级联动小案例讲解
2016/07/24 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
详解A标签中href=""的几种用法
2017/08/20 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
webpack 3.X学习之多页面打包的方法
2018/09/04 Javascript
mpvue项目中使用第三方UI组件库的方法
2018/09/30 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
python的dict,set,list,tuple应用详解
2014/07/24 Python
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
Python函数返回值实例分析
2015/06/08 Python
Python实现按中文排序的方法示例
2018/04/25 Python
Python3数据库操作包pymysql的操作方法
2018/07/16 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
python对文件的操作方法汇总
2020/02/28 Python
如何理解Python中的变量
2020/06/01 Python
实习期自我鉴定
2013/10/11 职场文书
自动化专业本科毕业生求职信
2013/10/20 职场文书
爱耳日活动总结
2014/04/30 职场文书
交警正风肃纪剖析材料
2014/10/29 职场文书
nginx前后端同域名配置的方法实现
2021/03/31 Servers
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python