1. CORS ?
웹 애플리케이션이 한 출처(origin)에서 로드된 리소스가 다른 출처의 리소스에 접근할 수 있도록 제어하는 메커니즘 => 만약 API 서버가 해당 요청을 허용하지 않으면, 브라우저에서 CORS 에러가 발생하게 된다.
2. CORS 에러의 원인
- 서버가 CORS를 지원하지 않음: 클라이언트의 출처가 서버에서 허용되지 않을 경우.
- HTTP 요청의 메소드가 허용되지 않음: 예를 들어, POST 요청이 허용되지 않을 경우.
- 요청 헤더에 대한 제한: 클라이언트가 보내는 특정 헤더가 서버에서 허용되지 않을 경우.
3. 해결방법
- 서버에서 CORS 허용 : 서버 측에서 Access-Control-Allow-Origin 헤더를 설정하여 특정 출처를 허용하거나, 모든 출처를 허용한다.
- 서버에서 특정 메소드 허용: Access-Control-Allow-Methods 헤더를 사용하여 허용하는 HTTP 메소드를 명시할 수 있다.
- 프록시 서버 사용: 클라이언트 요청을 프록시 서버를 통해 전달하여 CORS 정책을 우회할 수 있다. 이는 주로 개발 환경에서 사용된다.
- JSONP 또는 CORS 프리플라이트: JSONP(JSON with Padding)는 간단한 방법이지만, GET 요청만 지원한다. CORS 프리플라이트는 HTTP OPTIONS 메소드를 사용하여 실제 요청 전에 허가를 요청한다.
학교에서 프로젝트를 했을때 .. 어짜피 우리서버는 아무도 안털어가겠지하면서 대부분 서버에서 모든 출처허용하기로 해결했다 ..ㅋㅋ 다음에 프로젝트할땐 다른 방법으로 해서 보안에도 신경을 써야겠다
으악 CORS !!