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

使用socket.io和express(node.js)时出现CORS错误如何解决?

Socket.io CORS报错修复方案

Socket.io v3及以上版本默认启用严格跨域校验,你需要在初始化实例时新增CORS配置即可解决问题,修改后的初始化代码如下:

let io;
module.exports = {
  init: (httpServer) => {
    io = require("socket.io")(httpServer, {
      cors: {
        // 替换为你实际的前端访问地址,开发测试可临时写*,生产环境务必指定可信域名
        origin: "http://localhost:3000",
        methods: ["GET", "POST"],
        // 若需要跨域传递cookie等身份凭证请开启此项
        credentials: true
      }
    });
    return io;
  },
  getIO: () => {
    if (!io) {
      throw new Error("Socket.io not initialized");
    }
    return io;
  },
};

补充注意事项

  • 允许多个域名访问时,origin可传入数组:origin: ["http://localhost:3000", "https://your-prod-domain.com"]
  • 如果你使用的是Socket.io v2版本,跨域配置项名为origins,写法为:origins: "http://localhost:3000:*"
  • 生产环境禁止使用origin: "*"的配置,会带来跨域安全风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:06:03