Cross Origin Resource Sharing이라고 불리며
한국말로 해석하면 교차 출처 리소스 공유라고 해석한다.
브라우저에서 보안상의 이유로 cross origin http요청을 제한하며 cross origin을 통해 서버의 동의를 구하여 http-header이용하여 허락과 거절을 구하는데 이 메커니즘을 CORS라 한다.
CORS가 없이 모든 곳에서 데이터를 요청할 수 있게 되면, 다른사이트에서 원본 사이트를 흉내내거나 로그인했던 세션을 탈취하여 악의적으로 정보를 추출하여 유저의 정보를 입력하는 등 공격을 할 수 있습니다. 이런 공격등을 브라우저에서 보호하고, 필요한 경우에만 서버와 협의하여 요청할 수 있도록 하기 위해서 입니다.
이렇게 node.js Express기반의 API 서버에서 Access-Control-Allow-Origin 헤더를 설정해줄 수 있는 cors npm 모듈이 있습니다
npm install cors를 사용하여 인스톨해줍니다.
이후 reqiure로 불러준뒤 app.use미들웨어에 넣어 모든요청을 허용하거나. cors에 객체형태로 origin url을 할당한 변수를 넣어 특정 url만 허용해줄수도 있다.