Socket.io: 最新版本中的CORS错误

创建于 2020-11-09  ·  7评论  ·  资料来源: socketio/socket.io

较旧版本的socket.io正常工作,但最新版本尝试尝试前后连接时显示CORS错误。 我还向服务器添加了CORS中间件,但是它不起作用。 但是,当我切换回旧版本的套接字时,它工作得很好。

image

question

最有用的评论

你好! 抱歉,该文档正在针对v3进行更新。

我在这里添加了有关CORS的部分: https :

你能检查一下是否足够清楚?

所有7条评论

嗨,我相信这是因为文档没有反映3.0版本所做的更改。
请参阅此链接https://socket.io/docs/migrating-from-2-x-to-3-0/的CORS处理部分。

不会撒谎,这真是个无赖。 从今天开始就开始使用socket.io,马上就出现了路障。 我将降级到2.x,但似乎文档没有版本控制。

你好! 抱歉,该文档正在针对v3进行更新。

我在这里添加了有关CORS的部分: https :

你能检查一下是否足够清楚?

@darrachequesne谢谢,已经解决了!

这可能会对具有glitch.me项目的人造成麻烦。 当升级到v3时,glitch.me项目开始以saifulshihab发布错误进行回复。 但是,CORS似乎与glitch.me和AWS的TOS背道而驰,并且将被删除。 有没有办法在不包含CORS的情况下运行v3框架?

我不完全了解CORS是什么以及为什么会出现问题。 我只是想制定一个计划。

嗨, @ quindo-只是想澄清一下,启用CORS并不违反Glitch的TOS。 一些用户出于恶意原因在任何地方都使用了诸如CORS之类的特定npm软件包,违反了我们的TOS。

对于那些面临问题的人:

// server-side
const io = require("socket.io")(httpServer, {
  cors: {
    origin: "https://example.com",
    methods: ["GET", "POST"],
    allowedHeaders: ["my-custom-header"],
    credentials: true
  }
});

// client-side
const io = require("socket.io-client");
const socket = io("https://api.example.com", {
  withCredentials: true,
  extraHeaders: {
    "my-custom-header": "abcd"
  }
});

我认为现在可以将其关闭。 如果需要,请重新打开。

此页面是否有帮助?
0 / 5 - 0 等级