Это очень раздражающая конфигурация Angular. Простого разрешения перекрестного происхождения было бы недостаточно. Вам также необходимо разрешить методы и некоторые заголовки. Эта конфигурация помогла мне:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Value("${angular}")
private String angularOrigin;
@Bean
public WebMvcConfigurer corsConfigurer(){
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry
.addMapping("/**")
.allowedOrigins(angularOrigin)
.allowedHeaders("Authorization", "Cache-Control", "Content-Type", "Accept", "X-Requested-With", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Origin")
.exposedHeaders("Access-Control-Expose-Headers", "Authorization", "Cache-Control", "Content-Type", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Origin")
.allowedMethods("PUT","GET","POST","DELETE","OPTIONS");
}
};
}
}
Также обратите внимание, что существует HTTP-метод OPTION, который должен быть разрешен.