Socket.io: io.origins() 不接受字符串数组

创建于 2018-03-03  ·  4评论  ·  资料来源: socketio/socket.io

你想要:

  • [x] 报告错误
  • [ ] 请求功能

当前行为

在它声明的文档中, io.origins()采用字符串/来源数组(参见示例 https://socket.io/docs/server-api/#server-origins-value),而实际上它确实如此不是。 它仅在提供字符串而不是数组时才有效。

重现步骤(如果当前行为是错误)

环境

io.origins(['http://localhost:3000'])

然后从localhost:3000连接不起作用。

它仅在设置io.origins('http://localhost:3000')时有效

预期行为

设置

  • 操作系统:macOS High Sierra 10.13.3
  • 浏览器:Chrome 64.0.3282.186
  • socket.io 版本:2.0.4

最有用的评论

我认为不应包含协议:

io.origins(['localhost:3000', 'localhost:3001']);
// or
io.origins('localhost:3000');

所有4条评论

我认为不应包含协议:

io.origins(['localhost:3000', 'localhost:3001']);
// or
io.origins('localhost:3000');

以字符串形式提供时与协议一起使用,以数组形式提供时不使用 😄

但感谢您的澄清!

我认为它是用indexOf实现的,因此行为很时髦。

我将在文档中添加注释。

我刚刚遇到了同样的问题 - URL 中包含协议的数组,例如io.origins([https://subdomain.domain.ee:*])不起作用,而io.origins([subdomain.domain.ee:*])起作用。

虽然文档中的示例在数组示例中包含https://io.origins(['https://foo.example.com:443']);

查看这个commit ,似乎文档已更改为包含该示例,但它仍然发生在我身上吗?

我使用[https://subdomain.domain.ee:*]作为 URL,它不起作用,也没有使用http:// (尽管在我的情况下它应该只能通过https://访问)。 一旦我删除了协议,它就开始工作了。

我想我会在这里报告以防万一。 我可能错过了什么吗?

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