이건욱 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같은 경우에는 여러가지 설정 ( 특정 도메인만 허가 등등 )을 할수가 있으므로 자세한 내용은 링크를 봐주세요!