: 현재 브라우저 접속중인 페이지에서 자바스크립트를 이용해 다른 도메인 또는 포트를 가진 주소를 요청하는 경우, 해당 리소스에 접근을 허용했는지 확인해 보안을 높이는 동작
res.setHeader('Access-Control-Allow-origin', '*');
res.setHeader('Access-Control-Allow-Credentials', 'true');// 쿠키 주고 받기 허용
res.end();
> npm i cors
const express = require('express')
const cors = require('cors')
const app = express();
app.use(cors({
origin: true,// 모든 출처 허용 옵션. *를 써도 됨
credential: true //사용자 인증이 필요한 리소스(쿠키 등) 접근
//다른 도메인간에 쿠키 공유 허용
}))
//'Access-Control-Allow-origin' Header가 자동으로 추가
모든 cors 요청 허용은 보안상의 문제가 있을 수 있어 특정 주소만 허용하는게 좋다
const corsOptions = {
origin: 'http://localhost:...',
credentials: true
}
app.use(cors(corsOptions))
*참고로 axios에서도 도메인이 다른데, 쿠키를 공유해야 하는 경우 withCredentials: true 옵션으로 요청