서버/Node.js
CORS ?
이건욱
2020. 5. 2. 13:04
CORS란 ?
CORS는 Cross Origin Resource Sharing의 약자로 도메인 또는 포트가 다른 서버의 자원을 요청하는 매커니즘을 말합니다.
따라서 동일한 도메인 및 포트가 다르면 동일 출처 정책(same-origin policy) 때문에 외부서버에서 요청한 데이터를 브라우저에서 보안목적으로 차단을 합니다.
동일 출처 정책(same-origin policy)
불러온문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 중요한 보안 방식입니다. 이것은 잠재적 악성 문서를 격리하여, 공격 경로를 줄이는데 도움이 됩니다.
-- MDN web docs --
[해결 방법]
다음과 같은 해결 방법이 있습니다.
-
Access-Control-Allow-Origin response 헤더를 추가하는 방법
-
npm에 cors을 등록하는 방법
첫번째 방법
app.get('/test', (req, res) => {
res.header("Access-Control-Allow-Origin", "*");
res.send(data);
});
이런식으로 header에 대해서 응답값을 주면 됩니다.
두번째 방법
npm install --save cors
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
위와 같은 해당 라이브러리를 적용할수도 있습니다.
cors같은 경우에는 여러가지 설정 ( 특정 도메인만 허가 등등 )을 할수가 있으므로 자세한 내용은 링크를 봐주세요!