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

AJAX请求中xmlhttp.response仅更新2次后停止更新问题问询

问题根因

该问题是浏览器对相同URL的GET请求默认启用缓存导致的,而非固件侧逻辑问题。相同GET请求URL下,浏览器会直接返回首次请求缓存的响应内容,不会将请求转发到固件侧,因此会出现数据不再更新,重启设备刷新网页后缓存清空才会重新请求新数据的现象。

解决方法

  • 方案1:给AJAX请求添加禁用缓存的请求头,在xmlhttp.open执行后、xmlhttp.send执行前添加以下代码:
xmlhttp.setRequestHeader('Cache-Control', 'no-cache, no-store, must-revalidate');
xmlhttp.setRequestHeader('Pragma', 'no-cache');
xmlhttp.setRequestHeader('Expires', '0');
  • 方案2:给请求URL添加随机时间戳参数,保证每次请求URL唯一,不会命中浏览器缓存:
    将原代码中var url = './cgi-bin/status';替换为:
var url = './cgi-bin/status?t=' + Date.now();

额外优化提示

现有代码中存在两处可优化的兼容问题:

  1. responseType赋值的JSON应为全小写的json,大写取值在部分老旧浏览器中无法被正确识别,会导致响应解析失败。
  2. 代码末尾存在多余的`enter code here`残留,需要删除避免语法报错。

内容的提问来源于stack exchange,提问作者Richard

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:24:01