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

Firefox扩展POST请求报错:响应缺失Access-Control-Allow-Origin头

解决方案

1. 修复CORS中间件配置错误

你当前的CORS配置存在拼写错误:method应为复数methods,这个错误会导致中间件无法正确识别允许的HTTP方法,进而在预检请求(OPTIONS)时返回无CORS头的响应。修正后的配置:

app.use(
  cors({
    origin: "moz-extension://d07f1e99-96a0-4934-8ff4-1ce222c06d0d",
    methods: ["GET", "POST"], // 改为复数methods
    credentials: true // 个人使用可选,若需携带凭证则添加
  })
);

或者用最简配置覆盖所有场景:

app.use(cors({
  origin: "*",
  methods: ["GET", "POST", "OPTIONS"],
  allowedHeaders: ["Content-Type"]
}));

2. 确保错误响应携带CORS头

当数据库操作失败返回500状态码时,res.sendStatus(500)不会自动添加CORS头,导致错误响应被浏览器拦截。将其替换为带CORS头的响应格式:

if (err) {
  console.log("Failed to insert new user: " + err);
  res.status(500).json({ error: err.message }); // 用res.status().json()替代res.sendStatus(),CORS中间件会自动补全头信息
  return;
}

3. 绕过CORS(个人扩展最优解)

由于是个人使用的Firefox扩展,可直接通过扩展权限绕过CORS检查,无需修改服务器配置。在扩展的manifest.json中添加本地服务器权限:

{
  "manifest_version": 3, // 对应你使用的扩展版本
  "permissions": [
    "http://localhost:3003/*"
  ],
  // 其他扩展配置项...
}

添加权限后,Firefox会允许扩展后台脚本直接发起请求,不再触发CORS检查,彻底解决问题。

额外排查点

  • 确认扩展ID正确性:moz-extension://d07f1e99-96a0-4934-8ff4-1ce222c06d0d,可在Firefox扩展管理页面(勾选"调试附加组件")查看实际ID。
  • 检查post_endpoint是否为http://localhost:3003/timed_shot_create,避免拼写错误。
  • 查看服务器日志,确认是否收到OPTIONS预检请求,若未收到可能是请求参数格式错误导致400,预检请求未通过。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:33:34