解决拦截器对ajax请求的拦截实例详解

发布时间 - 2026-01-10 22:00:24    点击率:

解决拦截器对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;
          }
        }
      }

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 拦截器  # ajax请求拦截  # ajax请求拦截详解  # 解决拦截器  # ajax请求拦截实例  # 用jQuery.ajaxSetup实现对请求和响应数据的过滤  # jquery的ajax如何使用ajaxSetup做全局请求拦截  # 两种  # 希望能  # 谢谢大家  # 是否存在  # 就可以  # 判断是否  # 目的是  # getAttribute  # postId  # String  # write  # getSession  # token  # null  # getHeader  # Requested  # XMLHttpRequest  # equals  # getWriter 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速搭建高效香港服务器网站?  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel怎么连接多个数据库_Laravel多数据库连接配置  QQ浏览器网页版登录入口 个人中心在线进入  b2c电商网站制作流程,b2c水平综合的电商平台?  php json中文编码为null的解决办法  如何在 Pandas 中基于一列条件计算另一列的分组均值  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  如何快速启动建站代理加盟业务?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel如何使用查询构建器?(Query Builder高级用法)  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Laravel如何实现API版本控制_Laravel版本化API设计方案  如何正确选择百度移动适配建站域名?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  高性能网站服务器部署指南:稳定运行与安全配置优化方案  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  如何在IIS中配置站点IP、端口及主机头?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  Laravel如何创建自定义Facades?(详细步骤)  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  公司门户网站制作流程,华为官网怎么做?  Android自定义listview布局实现上拉加载下拉刷新功能  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  七夕网站制作视频,七夕大促活动怎么报名?  如何用免费手机建站系统零基础打造专业网站?  深入理解Android中的xmlns:tools属性  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel如何优雅地处理服务层_在Laravel中使用Service层和Repository层  Python文件流缓冲机制_IO性能解析【教程】  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  Laravel怎么使用Intervention Image库处理图片上传和缩放  如何在景安服务器上快速搭建个人网站?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  高防服务器租用首荐平台,企业级优惠套餐快速部署  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  如何用AWS免费套餐快速搭建高效网站?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  如何安全更换建站之星模板并保留数据?