node.js
CORS
무루뭉
2021. 1. 2. 18:01
CORS
CORS는 Cross Origin Resource Sharing의 약자로 포트 및 도메인이 다른 서버로 클라이언트가 요청했을 때 브라우저가 보안상의 이유로 API를 차단하는 문제이다. 같은 요청이라도 서버에서 서버로 보냈을 때는 되는데 브라우저에서 서버로 보내는 것이 안되니 당황스러울 수 있다.
Node 서버에서 cors 이슈를 해결하는 몇가지 방법
1. 어떤 특정 요청에만 적용하고 싶다면 cross-origin을 허락하는 헤더를 추가한다.
app.get('/', (req,res) => {
res.header("Access-Control-Allow-Origin", "*");
...
}
- "*"은 모든 요청 origin을 허용하는 것이기 때문에 위험하니 이 부분만 허용하는 origin으로 바꿔주면 좋다.
2. 미들웨어 cors를 활용하여 해결한다.
npm install cors
cors를 설치하고 서버에 추가
const cors = require('cors');
app.use(cors());
특정 url만 허용하고 싶다면 options을 추가
const cors = require('cors');
const corsOptions = {
origin: "http://localhost:3000",
credentials: true
}
app.use(cors(corsOptions));