본문 바로가기

카테고리 없음

[Spring] CORS란?

CORS(Cross-Origin-Resource-Sharing)도메인이 다른 2개의 사이트가 데이터를 주고 받을 때 발생하는 문제입니다.

서로 다른 도메인 간에 자원을 공유하는 것을 뜻합니다.

 

예를 들어 naver.com -> google.com으로 데이터를 요청한다고 하면, 따로 설정을 해주지 않는 한 CORS 에러를 만나게 됩니다.

 

CORS가 생기게 된 이유서버 내에서 요청이 허락된 도메인에만 데이터를 주기 위해서인데,
요청을 허락하기 위해서는 Access-Control-Allow-Origin: {도메인}과 같은 내용을 Response의 헤더에 추가해주어야 합니다.

만약 도메인을 *으로 설정하면 모든 도메인에 대해 요청을 허락할 수 있습니다.

그 외에도 Access-Control-Allow-Methods, Access-Control-Max-Age 등을 설정해줄 수 있습니다.

 

  • Access-Control-Allow-Origin: 요청을 보내는 페이지의 출처 [*.도메인]
  • Access-Control-Allow-Methods: 요청을 허용하는 메소드. Default: GET, POST
  • Access-Control-Max-Age: 클라이언트에서 preflight 요청 (서버의 응답 가능 여부에 대한 확인) 결과를 저장할 시간
  • Access-Control-Allow-Headers: 요청을 허용하는 헤더