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