javascript - socket.io 原始集但无论如何都会出现错误

标签 javascript node.js ssl socket.io

我正在为一个学校项目制作一个网站,其中有一个实时更新的表格,其中包含有关玩家跑了多少轮的数据。 快完成了,但我遇到一个错误,我无法解决:

ccess to XMLHttpRequest at 'https://creeperhd.de:8443/socket.io/?EIO=4&transport=polling&t=O88eQ0_' from origin 'https://creeperhd.de' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我的服务器代码中已包含此内容以防止出现此错误:

const io = require('socket.io')(http,{cors:{origin:"*"}});

但我还是遇到了同样的错误...

有人能告诉我我能做什么吗?

最佳答案

您需要执行以下两项操作之一才能启用 CORS 支持或绕过 CORS 限制。

选项#1:通过更改客户端连接代码添加如下选项,将客户端更改为跳过 socket.io http 轮询:

const socket = io("https://example.com", {
  transports: ["websocket"] // use webSocket only
});

最初的 socket.io http 轮询因 COR 限制而失败。如果您跳过此步骤并直接进入 webSocket 连接,则 webSocket 连接不受 COR 限制,因此您不会遇到 COR 访问问题。

选项 #2:在您的 http 服务器上安装 CORS 包并对其进行适当配置,以便为您的 socket.io 端点启用 CORS 访问。 COR 页面是 here 。用于启用 CORS 访问的 socket.io 文档是 here .

socket.io 显示的 cors 选项取决于 Web 服务器上安装的 CORS 包。因此,您必须同时使用这两者或实现您自己的自定义 COR 处理才能完全启用 COR 访问。

关于javascript - socket.io 原始集但无论如何都会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73007362/

相关文章:

Tomcat 不会从具有自签名证书的服务器下载文件

amazon-web-services - 来自 AWS API 网关的 "Unable to validate certificate chain"(RapidSSL 证书)

javascript - 将复选框数组传递到 AJAX 调用中

javascript - MongooseJS 填充反模式吗?

node.js - 安装依赖项后如何清理 heroku 中的缓存?

javascript - 防止输入负数 Mongoose Schema

javascript - HTML/CSS Jquery 悬停不显示

javascript - 在 XRegExp 中查找哈希值 ("#") 以及注释

javascript - 自动过期帖子

javascript - 如何使用 requests_html 忽略无效的 SSL 证书?