Gateway 如何解决跨域问题
1、写个配置类CorsConfig (如果不行,可以不写此类,和springcloud的版本有关)
package net.youqu.micro.service.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.reactive.CorsWebFilter; import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource; import org.springframework.web.util.pattern.PathPatternParser; /** * description: * java项目fhadmin.cn */ @Configuration public class CorsConfig { @Bean public CorsWebFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.addAllowedMethod("*"); // 是什么请求方法,比如GET POST PUT DELATE ... config.addAllowedOrigin("*"); // 来自哪个域名的请求,*号表示所有 config.addAllowedHeader("*"); // 是什么请求头部 UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser()); source.registerCorsConfiguration("/**", config); return new CorsWebFilter(source); } }
2. 配置 application.yaml方式
spring: cloud: gateway: globalcors: corsConfigurations: '[/**]': allowCredentials: true allowedHeaders: '*' allowedMethods: '*' allowedOrigins: '*'