我尝试通过以下代码在Spring Cloud Eureka服务器中启用CORS,但似乎不起作用。
@SpringBootApplication
@EnableEurekaServer
@EnableDiscoveryClient
public class EurekaApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(EurekaApplication.class, args);
}
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowedHeaders("*");
}
};
}
}发布于 2017-02-25 02:02:09
我不知道你为什么在Eureka中需要这个,但是我在我的ZUUL Server AKA APIGateway中的类上有这个代码,用@EnableZuulProxy注释。WebMVCConfigurer类似于你所拥有的,但我正在使用CorsFilter而不是Littel,你可以试一试,看看它是否对你有帮助。
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
;
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}发布于 2021-08-14 22:11:23
在您的主类中插入以下内容:
public @Bean FilterRegistrationBean<?> corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
config.addAllowedOrigin("http://localhost:4200");
config.addAllowedMethod("*");
config.addAllowedHeader("Accept");
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<Filter>(new CorsFilter(source));
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return bean;
}完整示例:https://github.com/EffNox/spring_eureka-rest-operations-angular
https://stackoverflow.com/questions/42423624
复制相似问题