Пружинная загрузка - не работают шнуры
У меня есть сервер, работающий на 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;
}
}