解决跨域问题
一般只需要在服务中配置以下代码就可以解决
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("*");
}
};
}
或者加注解:@CrossOrigin
如果使用的是网关则需要在网关中配置(网关配置完成后不需要在独立的服务再次配置)
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedMethod("*");
source.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(source);
}
如果有特殊情况既需要在网关中配置,也需要在独立的服务中配置,就需要在网关的配置文件中加以下配置
zuul:
ignoredServices: '*'
sensitiveHeaders: Access-Control-Allow-Origin
ignoredHeaders: Access-Control-Allow-Origin
这样大多数情况就都可以解决了。