【发布时间】:2020-03-13 19:31:08
【问题描述】:
我们使用 CORS 来允许所有来源
app.use(cors());
服务器运行在 4000 端口,客户端运行在 3000
这是我的 server.js 代码
const cors = require("cors");
const http = require("http");
const socketIO = require("socket.io");
app.use(cors());
const port = process.env.PORT || process.env.DEFAULT_PORT;
console.log("port: ", port);
app.listen(port, () => {
console.log(`App listening at ${port}...`);
});
const server = http.createServer(app);
const io = new socketIO(server, {
transports: ["websocket"],
});
反应js代码
constructor(props) {
super(props);
try {
this.socket = io("http://localhost:4000", { transport: ["websocket"] });
this.socket.on("Chat-event", data => {
console.log("socketdata", data);
});
} catch (error) {
console.log("hiterror", error)
}
}
在允许所有来源后,我在客户端不断收到此错误。
从源“http://localhost:3000”访问“http://localhost:4000/socket.io/?EIO=3&transport=polling&t=Mv-SSIc”处的 XMLHttpRequest 已被 CORS 策略阻止:响应中的“Access-Control-Allow-Origin”标头的值不能是当请求的凭据模式为“包含”时,通配符“*”。 XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制
【问题讨论】:
-
仍然出现同样的错误