정리된 내용
발생 원인
해결 방법
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*") // (일단 개발 환경에서는) 모든 Domain(Origin)에 대해 요청 허용
.allowedMethods("GET", "POST", "PUT", "PATCH", "OPTIONS") // 모든 HTTP Method 종류에 대해
.allowedHeaders("headers")
.maxAge(3000);
}
}
Spring Security를 사용한다면, 따로 설정을 해주어야 함
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.
...
.and().cors()
...
}
@Bean
public CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOriginPatterns(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("HEAD","POST","GET","DELETE","PUT"));
configuration.setAllowedHeaders(Arrays.asList("*"));
configuration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}