解决拦截器对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 相关文章推荐
JQuery 学习笔记 选择器之一
Jul 23 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
Mar 21 Javascript
gridpanel动态加载数据的实例代码
Jul 18 Javascript
Jquery插件分享之气泡形提示控件grumble.js
May 20 Javascript
9款2014最热门jQuery实用特效推荐
Dec 07 Javascript
Omi v1.0.2发布正式支持传递javascript表达式
Mar 21 Javascript
移动端效果之Swiper详解
Oct 09 Javascript
原生JS上传大文件显示进度条 php上传文件代码
Mar 27 Javascript
详解微信小程序支付流程与梳理
Jul 16 Javascript
vue data恢复初始化数据的实现方法
Oct 31 Javascript
vue 实现移动端键盘搜索事件监听
Nov 06 Javascript
微信小程序实现手指拖动选项排序
Apr 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开发负载均衡指南
2010/07/17 PHP
PHP进程同步代码实例
2015/02/12 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
php 从指定数字中获取随机组合的简单方法(推荐)
2017/04/05 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
jquery 最简单的属性菜单
2009/10/08 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
jQuery选择器之子元素选择器详解
2017/09/18 jQuery
JS实现带阴历的日历功能详解
2019/01/24 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
小程序使用watch监听数据变化的方法详解
2019/09/20 Javascript
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
Python实现在线程里运行scrapy的方法
2015/04/07 Python
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python探索之SocketServer详解
2017/10/28 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
2019/05/16 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
Python获取统计自己的qq群成员信息的方法
2019/11/15 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
python怎么提高计算速度
2020/06/11 Python
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
优秀社区干部事迹材料
2014/02/03 职场文书
行政办公室岗位职责
2014/03/18 职场文书
合作经营协议书
2014/04/17 职场文书
企业管理标语
2014/06/10 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
信用卡收入证明范本
2015/06/12 职场文书
教研活动主持词
2015/07/03 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers
Python实现仓库管理系统
2022/05/30 Python
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS