CORS 에러

2022. 2. 7. 18:32에러&&공부노트

CORS란?

  • 교차 출처 리소스 공유(Cross-Origin Resource Sharing)
  • 지정된 도메인 외부에 있는 자원에 대한 접근을 통제하는 브라우저 메커니즘
  • 자원에 대한 접근은 httpd 헤더를 사용하여 허용함
  • SOP(Same-Origin Policy)가 확장된 정책

 

SOP(Same-Origin Policy)

  • 동일한 port,http,host에서 자원에 대한 접근을 허용

 

에러나는 상황

  • API를 호출하는 도메인이 서버 측 도메인과 다를 경우 발생합니다.

해결 방법

  • 서버 측에서 add_header 'Access-Control-Allow-Origin' '*'; 를 추가합니다.
#nginx서버 시 $ sudo vim /etc/nginx/sites-avaliable/default
server {
	listen <포트>;
	listen [::]:<포트>;
	root /var/www/<디렉토리명>;
	server_name <서버네임>;
	add_header 'Access-Control-Allow-Origin' '*';
}
  • 프록시 설정을 합니다. -> 제 경험으로는 localhost에서는 호출이 가능하나 배포 시 에러가 발생합니다. 배포 서버에도 따로 작업이 필요한거 같아 첫 번째 방법을 추천드립니다.

이 외의 오류

위에 해결방법으로도 에러가 발생 시 체크해야되는 사항이 서버 측이 SSL이 적용되어있고 api를 호출하는 도메인이 SSL이 미적용되어있다면 에러가 날겁니다. 저같은 경우 필요에 따라 localhost에서도 SSL을 적용해서 해결했습니다. 참고로 

  • ssl -> ssl 호출 가능
  • ssl -> no ssl 호출 불가능
  • no ssl -> ssl 호출 가능
  • no ssl -> no ssl 호출 가능

이 점 참고 해주세요.

'에러&&공부노트' 카테고리의 다른 글

백준 1152번 풀이 node  (0) 2022.02.11
백준 1157 풀이 node  (0) 2022.02.11
백준 10809번 문제풀이(node)  (0) 2022.02.11
한수 개수 구하기  (0) 2022.02.10
셀프 넘버 구하기  (0) 2022.02.10