2017-02-23 51 views
1

我試圖通過以下代碼在Spring Cloud Eureka服務器中啓用CORS,但它似乎不起作用。Spring cloud netflix - 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("*"); 
      } 
     }; 
    } 
} 

回答

2

我不知道你爲什麼會需要這個尤里卡,但我有這樣的代碼在我ZUUL服務器AKA APIGateway與@EnableZuulProxy註釋的類。 Littel與您擁有的類似,但我使用的是CorsFilter而不是WebMVCConfigurer,您可以嘗試一下,看看它是否對您有所幫助。

@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); 
} 
+2

謝謝咧嘴笑。這正是我爲解決我的問題所做的。我們最終介紹了Zuul,似乎Eureka不應該暴露在外面。 – Ray

相關問題