본문 바로가기

공부기록/Node.js

[CORS에러] Access to XMLHttpRequest at 'http://localhost:8080/socket.io/?EIO=4&transport=polling&t=OWDX8nq' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resou..

 

 

 

 

socket.io 로 서버와 클라이언트를 연결하려는 도중 위와같은 CORS에러가 생겼다.

 

 

 

 

에러난 코드 

 

mongoose
  .connect(MONGODB_URI)
  .then((result) => {
    const server = app.listen(8080);
    const io = require("socket.io")(server);
    io.on("connection", (socket) => {
      console.log("Client connected");
    });
  })
  .catch((err) => console.log(err));

 

 

해결된 코드

 

서버쪽 socket을 연결하는 요청에 아래와 같이 코드를 작성해 주면 CORS에러가 해결된다.

mongoose
  .connect(MONGODB_URI)
  .then((result) => {
    const server = app.listen(8080);
    const io = require("socket.io")(server, { cors: { origin: "*" } });
    io.on("connection", (socket) => {
      console.log("Client connected");
    });
  })
  .catch((err) => console.log(err));