首页 文章

通过Zuul网关后,微服务返回'Invalid CORS request'

提问于
浏览
0

我在Zuul网关后面有一个Spring Boot服务,部署在远程服务器上 . 我通过本地计算机上的Ionic应用程序访问这些内容 . 我在我的Zuul应用程序中设置了一个corsFilter,如下所示:

@Bean
public FilterRegistrationBean corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(true);
    config.addAllowedOrigin("*");
    config.addAllowedHeader("*");
    config.addAllowedMethod("*");
    source.registerCorsConfiguration("/**", config);
    FilterRegistrationBean bean = new FilterRegistrationBean(new org.springframework.web.filter.CorsFilter(source));
    bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
    return bean;
}

该请求被Zuul接受并传递给微服务(我可以在微服务日志中看到它)但是微服务拒绝请求并返回403错误'无效的CORS请求' .

有任何想法吗?

1 回答

  • 0

    您也可以尝试使用 spring 过滤器 .

    @Bean
    public CorsFilter corsFilter() {
      final UrlBasedCorsConfigurationSource source = new 
      UrlBasedCorsConfigurationSource();
      final CorsConfiguration config = new CorsConfiguration();
      config.setAllowCredentials(true);
      config.addAllowedOrigin("*");
      config.addExposedHeader("Content-Type");
      config.addExposedHeader("Authorization");
      config.addExposedHeader("Accept");
      config.addExposedHeader("Origin");
      config.addAllowedHeader("*");
      config.addAllowedMethod("*");
      source.registerCorsConfiguration("/**", config);
      return new CorsFilter(source);
    }
    

相关问题