当前位置: 首页 > news >正文

JAVA判断是否是Ajax请求

/**
     * 是否是Ajax异步请求
     *
     * @param request
     */
    public static boolean isAjaxRequest(HttpServletRequest request) {
        String accept = request.getHeader("accept");
        if (accept != null && accept.indexOf("application/json") != -1) {
            return true;
        }

        String xRequestedWith = request.getHeader("X-Requested-With");
        if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) {
            return true;
        }

        String uri = request.getRequestURI();
        if (isContainStrs(uri, ".json", ".xml")) {
            return true;
        }

        String ajax = request.getParameter("__ajax");
        if (isContainStrs(ajax, "json", "xml")) {
            return true;
        }
        return false;
    }


    public static boolean isContainStrs(String str, String... strs) {
        if (str != null && strs != null) {
            for (String s : strs) {
                if (str.equalsIgnoreCase(trim(s))) {
                    return true;
                }
            }
        }
        return false;
    }

  
    public static String trim(String str) {
        return (str == null ? "" : str.trim());
    }

相关文章:

  • java判断User-Agent 是不是来自于手机
  • console.log只显示[object],怎么看对象里面内容
  • 正则表达式\S\s的意思
  • <(\S*?)[^>]*>.*?|<.*? />正则过滤Xss
  • @Validated和@Valid校验参数区别
  • window.close()关闭不了谷歌浏览器的标签
  • document怎么获取到before after这种伪元素的style
  • document获取元素的style样式
  • java使用@Constraint注解来做Xss校验
  • java将Object对象转换为Integer
  • java计算两个date日期的相差天数或者时间差
  • java controller Date日期型参数异常的处理方法
  • jpa批量删除 deleteInBatch方式
  • jpa在对主表更新的同时对关联表进行更新操作
  • type: Object, default: 数组/对象的写法
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • (三)从jvm层面了解线程的启动和停止
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • Angular 2 DI - IoC DI - 1
  • Cumulo 的 ClojureScript 模块已经成型
  • Linux后台研发超实用命令总结
  • Node 版本管理
  • Phpstorm怎样批量删除空行?
  • SSH 免密登录
  • Vue 2.3、2.4 知识点小结
  • windows下mongoDB的环境配置
  • 浮现式设计
  • 回顾 Swift 多平台移植进度 #2
  • 简析gRPC client 连接管理
  • 如何选择开源的机器学习框架?
  • 深入浏览器事件循环的本质
  • 实战|智能家居行业移动应用性能分析
  • 双管齐下,VMware的容器新战略
  • 温故知新之javascript面向对象
  • 小程序 setData 学问多
  • 小程序button引导用户授权
  • 一起参Ember.js讨论、问答社区。
  • ​决定德拉瓦州地区版图的关键历史事件
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #define 用法
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (16)Reactor的测试——响应式Spring的道法术器
  • (javascript)再说document.body.scrollTop的使用问题
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (小白学Java)Java简介和基本配置
  • (一)插入排序
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • ... 是什么 ?... 有什么用处?
  • .htaccess 强制https 单独排除某个目录
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET 发展历程
  • .net 后台导出excel ,word
  • .NET 中什么样的类是可使用 await 异步等待的?