Пружинная загрузка - не работают шнуры

У меня есть сервер, работающий на localhost:8080 (приложение весенней загрузки), и мой интерфейс на localhost:3000 (приложение angular). Проблема в том, что я хочу сделать запрос от внешнего интерфейса к своему внутреннему серверу. Я знаком с Cors, но это не работает со мной. Я добавил это на свой сервер:

    @Bean
WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurerAdapter() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**").allowedOrigins("http://localhost:3000");
        }
    };
}

, но я все еще получаю

XMLHttpRequest не может загрузить http://localhost:8080/cars. Запрос был перенаправлен на " http://localhost:8080/login", что запрещено для запросов с несколькими источниками, которые требуют предварительной проверки.

В чем дело?

1 ответ

Согласно официальной статье в блоге о поддержке CORS в Spring Framework, если вы включили Spring Security, вы должны использовать поддержку CORS на основе фильтров.

@Configuration
public class MyConfiguration {

    @Bean
    public FilterRegistrationBean corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        config.addAllowedOrigin("http://domain1.com");
        config.addAllowedHeader("*");
        config.addAllowedMethod("*");
        source.registerCorsConfiguration("/**", config);
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        bean.setOrder(0);
        return bean;
    }
}
Другие вопросы по тегам