因为请求在gateway就被拦下了所以只能在gateway中设置解决跨域的配置
第一种,在application.yml中配置跨域解决
spring:
cloud:
gateway:
globalcors:
corsConfigurations:
'[/**]':
allowedHeaders: "*"
allowedOrigins: "*"
allowCredentials: true
allowedMethods:
- GET
- POST
- DELETE
- PUT
- OPTION
第二种,写一个配置文件交予spring容器管理
/**
* 网关跨域有关配置
*/
@Configuration//定义为配置类
public class TcshopCorsConfiguration {
@Bean//将方法加入spring容器中
public CorsWebFilter corsWebFilter(){
//UrlBasedCorsConfigurationSource为基于url路径的跨域配置
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
//1、配置跨域设置
corsConfiguration.addAllowedHeader("*");//设置允许那些头可以跨域
corsConfiguration.addAllowedMethod("*");//设置允许那些方式可以跨域
corsConfiguration.addAllowedOrigin("*");//设置允许那些来源可以跨域
corsConfiguration.setAllowCredentials(true);//设置是否允许携带cooket可以跨域
source.registerCorsConfiguration("/**",corsConfiguration);//注册跨域的配置,/**代表任何路径
return new CorsWebFilter(source);
}
}