You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery提取Cloudflare trace页面中colo=后的内容?

解决方案:提取Cloudflare Trace页面的colo值

没问题,这个场景确实没法直接用$(element).load()的选择器参数——毕竟那个trace页面是纯文本格式,根本没有HTML元素或ID可以定位。不过我们可以换个思路,先获取整个页面的文本内容,再通过字符串处理提取出colo=后面的节点标识。

方法1:按行遍历提取(可读性高)

这种方式逻辑清晰,适合新手理解:

$(document).ready(function() {
  // 向同域的trace接口发起请求
  $.get("/cdn-cgi/trace", function(responseText) {
    // 将纯文本按换行符拆分成数组
    const lines = responseText.split('\n');
    
    // 遍历每一行寻找colo开头的记录
    for (const line of lines) {
      if (line.startsWith('colo=')) {
        // 拆分等号前后的内容,取后半部分
        const coloCode = line.split('=')[1];
        // 将结果插入到目标div中
        $("#testdiv").text(coloCode);
        break; // 找到后立即停止遍历,提升效率
      }
    }
  }).fail(function() {
    // 处理请求失败的情况
    $("#testdiv").text("无法获取Cloudflare节点信息");
  });
});

方法2:正则表达式提取(更简洁)

如果追求代码简洁,用正则表达式匹配是更高效的选择:

$(document).ready(function() {
  $.get("/cdn-cgi/trace", function(responseText) {
    // 用正则匹配colo=后面的字母/数字组合
    const coloMatch = responseText.match(/colo=(\w+)/);
    
    if (coloMatch) {
      // 捕获组1就是我们要的节点代码
      $("#testdiv").text(coloMatch[1]);
    } else {
      $("#testdiv").text("未找到节点信息");
    }
  }).fail(function() {
    $("#testdiv").text("请求失败,请稍后重试");
  });
});

注意事项

  • 因为请求的是你自己域名下的/cdn-cgi/trace,属于同域请求,不会遇到跨域问题,不需要额外配置CORS。
  • 两种方法都能稳定提取到colo值,你可以根据自己的代码风格选择。

内容的提问来源于stack exchange,提问作者M. Ashcraft

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:01:53