【发布时间】:2021-03-15 06:40:07
【问题描述】:
使用 Socketio v3 时出现 cors 错误 该应用程序在由 Nodejs 支持的 React 上
服务器端代码:
var server = http.createServer(app);
var port = process.env.PORT || '3000'
const io = require("socket.io")(server,{
cors: {
origin: "*:*",
methods: ["PUT", "GET", "POST", "DELETE", "OPTIONS"],
allowedHeaders:["secretHeader"],
credentials: true
}
})
客户端连接代码:
const SOCKET_URL = "https://fakeurl.org";
socket.current = io(`${SOCKET_URL}`,{
secretHeader:{
"Access-Control-Allow-Headers": "*"
}
});
我收到以下错误:
访问 XMLHttpRequest 在 'https://fakeurl.org/socket.io/?EIO=4&transport=polling&t=NOdqBkN' 来自原产地“http://localhost:3000”已被 CORS 政策阻止: 请求中不存在“Access-Control-Allow-Origin”标头 资源。
【问题讨论】:
-
您是否尝试将
Access-Control-Allow-Origin添加到 allowedHeaders 中? -
删除客户端的
secretHeader选项,使用“extraHeaders”代替它
标签: node.js reactjs websocket socket.io