绕过 CloudFlare 的 100 秒超时

2024-03-17

我正在尝试 AJAX 化我的报告,以绕过 CloudFlare 对通过其站点运行的请求强加的 100 秒超时。

See 是否可以增加 CloudFlare 超时? https://stackoverflow.com/questions/38536167/is-it-possible-to-increase-cloudflare-time-out/44139506#44139506

我做了以下事情:

function ajaxReport() {
    var seconds = prompt("Please enter how many seconds you want the report to run", "5");
    $('#imgWaiting').show();
    $.post("post/post_ajaxReport.jsp",
  {
    theParam:seconds
  },function(data) {
    $('#imgWaiting').hide();
    window.location=data;
 });

}

以及 post_ajaxReport.jsp 的以下内容

<%
 int theParam=myFunctionToConvertStringToInt(request.getParameter("theParam"));
int a=theParam/60;
int b=theParam-a*60;
String query="WAITFOR DELAY '00:"+a+":"+b+"';";
double d=myCustomCodeToRunQuery(query);
String fileName=createReport();
%>
<%=fileName%>

该代码在 100 秒内运行良好。但超过100秒没有起作用。

有任何想法吗?

反馈后更新

我的报告现在可以在没有 AJAX 的情况下正常工作(尽管使用 CloudFlare 会有 100 秒的超时)。我试图将它们转换为 AJAX,以避免子域出现灰色云,因为我不想暴露我的 IP 地址。如果我要对子域进行灰云处理,我会在原始代码上进行,这比 AJAX 化我的代码要简单得多!我的问题是“如何修复我的 AJAX 代码,这样我就能避免 100 秒超时,但又不会暴露我的 IP 地址……”


如果其他人也遇到同样的问题,我将发布我最终如何解决这个问题的。我放弃了尝试使用 AJAX 来运行报告,而是通过线程运行报告,但使用 AJAX 来“轮询”以检查报告是否已创建。我所做的基本上如下。

请注意,我从代码中删除了很多内容,例如安全例程和错误检查例程,只是给出基本框架。

我创建了一个名为 ThreadMyReport 的 java 类

public class ThreadMyReport implements Runnable {

    String fileID = "";
    Date dateOfReport = null;

    public ThreadMyReport(Date dateOfReport) {
        this.fileID= "MyReport_" + UUID.randomUUID();
        this.dateOfReport = dateOfReport;
    }

    public void run() {
        int a = ReportMyReport.loadAndSaveMyReport(dateOfReport, fileID);
    }


    public String getFileID() {
        return fileID;
    }
}

我生成报告的所有原始代码都可以在 ReportMyReport.loadAndSaveMyReport 中找到。报告完成后,会在服务器上保存一个带有 fileName fileID 的文件。

然后我启动了一个线程来运行报告

    ThreadMyReport a  = new ThreadMyReport(theDate);
    Thread theThread=new Thread(a);
    theThread.start();
    fileID=a.getFileID();

然后,我添加了一个 javascript 例程,每秒通过 AJAX 检查文件是否已创建,如果已创建,则显示报告。

<SCRIPT language="javascript">


    var myVar;
    myVar=setInterval(function (){
    $.post("post/post_checkReportReady_xml.jsp", {
       generatedReport: '<%=fileID%>'
    }, function(data) {
       if (data.indexOf("produced")>-1) {
           clearInterval(myVar);
           //display report
       }
       if (data.indexOf("failed")>-1) {
           clearInterval(myVar);
       }
    });

}, 1000);
        </SCRIPT>

AJAX 代码如下所示:

     <%
    String result="";

    String generatedReport=(request.getParameter("generatedReport"));

    if(!"".equals(generatedReport)) {
        String fileName2="My directory/"+generatedReport+".xlsm"; 
        java.io.File f = new java.io.File(fileName2);
        if(f.exists()) { 
            result="produced";
        }
    }
}

%>
<%=result%>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绕过 CloudFlare 的 100 秒超时 的相关文章

随机推荐

  • Mac OS Xocks代理环境变量

    我知道可以通过网络应用程序设置袜子代理服务器 并且有一个 Mac 特定实用程序可以设置它 但如果可能的话 我更喜欢将袜子代理服务器设置为环境变量 有谁知道合适的export环境 如果有人想知道这对于 http 代理来说是可能的 例如 exp
  • NodeJS 和 C# 中的 AES256 加密/解密

    我对以下问题的结果采取了一些自由态度 NET 中的 AES 加密并使用 Node js 加密解密 https stackoverflow com questions 17306552 aes encrypt in net and decry
  • 图中轴标签隐藏了轴标签吗?

    我正在尝试制作极坐标 sypder 图 但轴标签存在一些问题 x 轴刻度标签似乎总是位于 y 轴网格下方的一层上 字母被网格线覆盖 如下图所示 我希望它们位于顶部 我尝试设置 zorder 但没有成功 如果我将绘制的线的 zorder 设置
  • 从后台进程重定向 stdout 和 stderr

    我有一个名为 foo 的脚本 它运行程序 a exe 并将计时统计信息发送到文件 time log bin bash date 1 gt gt time log time a exe 2 gt gt time log 如果我在终端后台运行脚
  • 将现有 SVN 项目导入 Eclipse

    我在 C 盘上有一个文件夹 该文件夹已从 SVN 中签出 在该文件夹的某个位置 我有一个 Eclipse 项目文件夹 它已经在 SVN 存储库中 我启动了 Eclipse 导入了该项目 但我不知道如何将它连接到 SVN 当我正在做一个CVS
  • PDFBox - 如何创建目录

    有没有办法使用创建目录Java PDFBox图书馆 目录应该是可点击的 跳转到右侧页面 Thanks 没有简单的方法可以做到这一点 但这里有一个方法 我还没有弄清楚如何将链接直接附加到文本 所以我的方法意味着您必须将注释分别绘制为矩形和文本
  • blockui 优于 jQueryUI 模式对话框

    我无法让 BlockUI 在模式对话框上工作 我尝试解决 z index 问题 但没有成功 在我的网页中 这是标题
  • 如何在XtraReport中使用子报表?

    我有一份主要报告 其中包括 详细报告 Transaction Amount Due PaymentType Money Tendered 我还有另一份报告 其中包含订购的物品 物品报告 Transaction ItemName Quanti
  • Python“所有其他元素”习语[重复]

    这个问题在这里已经有答案了 我觉得我花了很多时间用 Python 编写代码 但没有足够的时间创建 Pythonic 代码 最近我遇到了一个有趣的小问题 我认为可能有一个简单 惯用的解决方案 解释一下原文 我需要收集列表中的每个连续对 例如
  • 正在分析的二进制文件必须是可执行文件

    我正在尝试上传一个应用程序供 Apple 审核 但不确定我做错了什么而收到此错误消息 二进制文件必须是可执行文件 zip 文件名看起来应有的样子 项目名称中没有可见的空格 路径末尾的名称除外 示例 ProjectName app zip P
  • 为什么单例类很难测试?

    有效的Java第 3 条 使用私有构造函数或枚举类型强制执行单例属性 指出 将类设置为单例可能会使测试其客户端变得困难 因为不可能用模拟实现替代单例 除非它实现了充当其类型的接口 出于测试目的 为什么实例化一个单例实例并测试其 API 还不
  • 在 chrome 开发工具中隐藏 401 console.error 在 fetch() 调用时获取 401 [重复]

    这个问题在这里已经有答案了 我有一些代码可以进行提取调用 这利用了现代 chrome firefox 中内置的 window fetch api 该代码有时会出现 401 未经授权的响应 这是正常的 我希望忽略它 我可以通过代码流来做到这一
  • 从 Dock 中删除 AppleScript 脚本的图标

    如何隐藏正在运行的 AppleScript 的停靠栏图标 并仅将应用程序保留在菜单栏中 要隐藏应用程序使其不显示在 Dock 中 您需要修改应用程序内的 Info plist 文件 最简单的方法是在 Finder 窗口中选择应用程序 按住
  • numpy 中两个二维掩码数组的快速内积

    我的问题如下 我有两个数组X and Y形状为 n p 其中p gt gt n 例如 n 50 p 10000 我也有口罩mask 大小为布尔值的一维数组p 关于p of small密度 例如np mean mask 为 0 05 我尝试尽
  • 如何删除 XQuery 中的重复节点?

    我有一个动态生成的 XML 文档 我需要一个函数来消除其中的任何重复节点 我的函数如下所示 declare function local start2 let data local scan books return
  • 修改向量的元素(按值、按引用)函数 C++

    我有一个必须修改向量值的函数 在 C 中返回向量是一个好的做法吗 功能一 vector
  • 如何使用 MediaRecorder 作为 MediaSource

    作为学习 WebRTC 的练习 我试图并排显示本地网络摄像头和网络摄像头的延迟播放 为了实现这一目标 我尝试将记录的 blob 传递到 BufferSource 并使用相应的 MediaSource 作为视频元素的源 the ondataa
  • Google oAuth2 令牌越来越多地失效

    我有一个基于 oAuth2 构建的 Web 应用程序 该应用程序已经投入生产 5 年多了 用户通过 Google 进行身份验证和授权 并授予我的应用程序对 Google Analytics 数据的访问权限 突然间 我发现刷新用户 oAuth
  • 如何为多个变量声明具有多个限制的 sympy Piecewise

    同情 我如何声明Piecewise子函数中多个变量具有多个限制的函数 这是我的背景和尝试 from sympy import Piecewise Symbol exp from sympy abc import z x1 Symbol x1
  • 绕过 CloudFlare 的 100 秒超时

    我正在尝试 AJAX 化我的报告 以绕过 CloudFlare 对通过其站点运行的请求强加的 100 秒超时 See 是否可以增加 CloudFlare 超时 https stackoverflow com questions 385361