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

Express含:id参数的GET请求重复触发,出现/serviceWorker.js异常请求

问题分析与解决办法

请求来源

/serviceWorker.js的请求基本是浏览器自动发起的,常见原因有这几个:

  • 同一域名下的旧项目或曾经的代码注册过Service Worker,浏览器缓存了注册记录,即便当前项目没配置,仍会自动尝试加载该文件
  • 前端代码(包括第三方依赖、模板)里存在未被注意到的Service Worker注册逻辑
  • 浏览器的PWA相关扩展或开发者工具的自动检测触发了请求

解决办法

1. 清除浏览器相关缓存与记录

打开浏览器开发者工具(F12),进入Application标签页:

  • 在左侧导航选择Service Workers,若有已注册的Worker,点击Unregister完成注销
  • 切换到Cache Storage,清空所有缓存内容
  • 最后按Ctrl+Shift+R强制刷新页面

2. 在Express中拦截无效请求

为避免/serviceWorker.js请求干扰业务路由(比如被误解析为:id参数),可以在所有业务路由前添加拦截逻辑:

// 放在你的API路由之前
app.get('/serviceWorker.js', (req, res) => {
  res.status(404).send('Not Found');
});

这样浏览器请求该文件时会收到404响应,不会触发你的业务处理逻辑。

3. 排查前端代码

仔细检查所有前端JS文件,看是否存在类似以下的Service Worker注册代码:

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/serviceWorker.js');
}

如果有,直接删除这段代码,或根据项目需求调整逻辑。

4. 排查浏览器扩展

暂时禁用所有浏览器扩展(尤其是PWA、缓存相关插件),确认请求是否还会出现,以此排查是否是扩展导致的自动请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:55:33