解决拦截器对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 仿腾讯发表微博的效果代码
Dec 25 Javascript
javascript中tostring()和valueof()的用法及两者的区别
Nov 16 Javascript
分享jQuery插件的学习笔记
Jan 14 Javascript
JS获取html元素的标记名实现方法
Oct 08 Javascript
bootstrap导航条实现代码
Dec 28 Javascript
AngularJS ui-router (嵌套路由)实例
Mar 10 Javascript
JS实现的四级密码强度检测功能示例
May 11 Javascript
Vue 进入/离开动画效果
Dec 26 Javascript
vue实现验证码按钮倒计时功能
Apr 10 Javascript
对angularJs中$sce服务安全显示html文本的实例
Sep 30 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 Javascript
Vue解析带html标签的字符串为dom的实例
Nov 13 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
一个ftp类(ini.php)
2006/10/09 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
JQuery基础语法小结
2015/02/27 Javascript
jQuery.position()方法获取不到值的安全替换方法
2015/03/13 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
Javascript实现网络监测的方法
2015/07/31 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
2017/11/11 jQuery
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
使用typescript构建Vue应用的实现
2019/08/26 Javascript
javascript实现支付宝滑块验证码效果
2020/07/24 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
python操作CouchDB的方法
2014/10/08 Python
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
python获取一组汉字拼音首字母的方法
2015/07/01 Python
python实现数据图表
2017/07/29 Python
pandas 根据列的值选取所有行的示例
2018/11/07 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
解决python3 pika之连接断开的问题
2018/12/18 Python
python3 tkinter实现添加图片和文本
2019/11/26 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
为什么要使用servlet
2016/01/17 面试题
实习评语大全
2014/04/26 职场文书
心理健康活动总结
2014/04/30 职场文书
2015大学生党员自我评价范文
2015/03/03 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
MySQL索引失效的典型案例
2021/06/05 MySQL