解决拦截器对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 30 Javascript
AJAX 网页保留浏览器前进后退等功能
Feb 12 Javascript
jQuery 源码分析笔记(4) Ready函数
Jun 02 Javascript
jQuery Tools tab(幻灯片)
Jul 14 Javascript
jQuery使用数组编写图片无缝向左滚动
Dec 11 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
Mar 25 Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 Javascript
分享javascript实现的冒泡排序代码并优化
Jun 05 Javascript
SVG描边动画
Feb 23 Javascript
简单实现JavaScript弹幕效果
Aug 27 Javascript
微信小程序显示下拉列表功能【附源码下载】
Dec 12 Javascript
vue树形结构获取键值的方法示例
Jun 21 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
数据库相关问题
2006/10/09 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
2017/02/08 PHP
php strftime函数的详细用法
2018/06/21 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
JS判断字符串长度的5个方法(区分中文和英文)
2014/03/18 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
js实现文本框中输入文字页面中div层同步获取文本框内容的方法
2015/03/03 Javascript
如何屏蔽防止别的网站嵌入框架代码
2015/08/24 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
2015/10/10 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
使用jQuery监听DOM元素大小变化
2016/02/24 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
vue-router传递参数的几种方式实例详解
2018/11/13 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
python适合做数据挖掘吗
2020/06/16 Python
浅谈keras.callbacks设置模型保存策略
2020/06/18 Python
Lacoste澳大利亚官网:服装、鞋类及配饰
2018/11/14 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
社区活动邀请函范文
2014/01/29 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
运动会闭幕式致辞
2015/07/29 职场文书
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL