KooLabs 云实验“开始实验”点了没反应?从浏览器请求看它的真实行为

举报
yd_236761662 发表于 2026/10/26 10:02:24 2026/10/26
【摘要】 云实验详情页点“开始实验”后页面无变化,通过监听 XHR 还原了它实际发了什么、后端返回了什么,并给出几种可行的排查与进入方式。

一、现象

在华为云 KooLabs 云实验的详情页(形如 edu.huaweicloud.com/lab/experiment-detail_<id>)点“开始实验”按钮,页面没有任何变化:不弹窗、不跳转、不新开标签页,实验点也没扣。换个实验、刷新页面、换浏览器,表现一样。

二、用请求监听还原它到底做了什么

判断这类“点了没反应”的问题,最有效的办法不是反复点,而是打开 DevTools 的 Network,或者在控制台里临时包一层 XHR,把点击瞬间发出的请求全部抓下来:

const log = [];
const open = XMLHttpRequest.prototype.open;
const send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.open = function (m, u) {
  this.__u = u; this.__m = m; return open.apply(this, arguments);
};
XMLHttpRequest.prototype.send = function (b) {
  const self = this;
  this.addEventListener("load", () => log.push({
    method: self.__m,
    url: self.__u,
    status: self.status,
    resp: self.responseText.slice(0, 200),
  }));
  return send.apply(this, arguments);
};
// 然后点击按钮,再打印 log

我在一次点击里抓到三个有效请求:

  1. POST .../hdsandboxexpservice/v1/userso/warefree/experiment-info → 返回 {"price":10,"lab_times":3600,"topology":"..."}
  2. GET .../hdsandboxuserservice/v1/user/get-user-times?experiment_id=2417 → 返回一个秒数
  3. (另有两条埋点上报,与功能无关)

关键在于第二条:它返回的秒数第一次是 0,后来又变成 3600。这说明后端其实已经分配了 1 小时的实验时长,但前端的跳转/打开逻辑没有被触发。

三、几种可能的原因

  • 弹窗被浏览器拦截。如果按钮的处理逻辑是 window.open(...) 打开小桌面,而浏览器把弹窗挡了,表现就是“点了完全没反应”。判断方法:在点击前把 window.open 临时包一层,记录它被调用的 URL。
  • 每日免费名额的判断在前端。页面会显示“今日免费名额剩余 N(每日限领一次)”。如果当天已经领过,前端可能直接静默返回。
  • 环境其实已就绪,只是入口在别处。这种情况最容易被忽略——后端已经分配了时长,正常应该能从“我的实验”里进去。

四、我的排查顺序(建议照抄)

  1. 先看 get-user-times 的返回值:是 0 还是大于 0。大于 0 说明额度已经到了你名下。
  2. 包装 window.open 再点,看有没有 URL 被拦掉。
  3. 去“我的实验”(lab.connect.huaweicloud.com)看有没有进行中的实验记录。
  4. 以上都不行,换一个实验验证是不是单实验的问题;仍然不行就提工单,附上抓到的请求与返回值。

五、小结

“点了没反应”不是没有信息,而是信息都在请求里。养成先抓请求、再看返回值的习惯,比反复点击效率高得多。尤其是看到 lab_times 已经被分配、get-user-times 已经变成 3600 这种证据,就能明确区分「后端没给」和「前端没跳」两种完全不同的故障方向。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。