FrontEnd와 BackEnd를 구분지어 개발하거나,
서로 다른 Server 환경(Port, Domain ...)에서 자원을 공유해야 할 때,
위 처럼 CORS 설정이 안되있을 경우 오류가 발생한다.
이번엔 Spring Boot에서 WebMvcConfigurer
를 이용해 간단하게 CORS 설정 하는 방법을 길록해둔다.
방법은 단순하다.
WebMvcConfigurer
를 implements
해준다.
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST", "PUT", "PATCH", "OPTIONS")
.allowedHeaders("headers")
.maxAge(3000);
}
}
위와 같이 작성한 CorsConfig
Class를 간단하게 설명하자면,
@Configuration
Annotation을 통해 Container에 Bean 등록 될 수 있고,
CorsRegistry
객체에 .addMapping
을 통해 해당 서버의 모든 URL
요청에 해당 Class가 동작하게 설정,
.allowedOrigins("*")
를 통해 모든 Origin을 허용해주는데,
.allowedOrigins("https://gillog.com", "localhost:8014")
와 같이 원하는 도메인만 허용해 줄 수도 있다.
.allowedMethods
를 통해 원하는 HTTP Methods
를 허용해주고(GET, POST, PUT, PATCH, DELETE, OPTIONS, 등등 설정 가능)
.allowedHeader
를 통해 Http Request Header
에 허용해줄 Header Name을 설정해 줄 수 있다.
.maxAge()
로는 PreFilght 요청을 원하는 시간 만큼 캐싱해줄 수 있다.