spring cloud zuul解決跨域訪問

spring zuul是不支持跨域的,須要對其進行配置spring

1.配置 application.yml

zuul:
  sensitive-headers: Access-Control-Allow-Origin
  ignored-headers: Access-Control-Allow-Origin,Vary,X-Frame-Options,token

猜想關鍵點在第二行,忽略Access-Control-Allow-Origin這種方式;跨域

2.配置filter

@Configuration
public class GatewayCrosConfig {
    @Bean
    public CorsFilter corsFilter() {
        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        final CorsConfiguration corsConfiguration = new CorsConfiguration();
//        corsConfiguration.setAllowCredentials(true);
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedMethod("*");
        source.registerCorsConfiguration("/**", corsConfiguration);
        return new CorsFilter(source);
    }
}

3. zuul 與cloud內部服務的跨域問題

zuul內部轉發是不存在跨域問題的mvc

4. spring mvc 配置跨域

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedHeaders("Content-Type","X-Requested-With","accept,Origin","Access-Control-Request-Method","Access-Control-Request-Headers","token")
                .allowedMethods("*")
                .allowedOrigins("*")
                .allowCredentials(true);
    }
}

經過設置cors配置來實現app

相關文章
相關標籤/搜索