关于Gateway网关中配置跨域的三种方案
目录
- Gateway网关中配置跨域的三种方案
- 方法一
- 方法二
- 方法三
- 总结
Gateway网关中配置跨域的三种方案
方法一
直接在每个Controller类上添加跨域注解
@CrossOrigin
方法二
通过配置类统一处理
@Configuration public class CorsConfig { // 该配置适用于reactive响应式环境 @Bean public CorsWebFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.addAllowedOrigin("*"); config.addAllowedHeader("*"); // springboot升级成2.4.0以上时对AllowedOrigin设置发生了改变,不能有”*“,可以替换成AllowedOriginPattern config.addAllpythonowedOriginPattern("*"); config.setAllowCredentials(true); // 必须是reactive包下的UrlBasedCorsConfigurationSource UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser()); source.registerCorsConfiguration("/**", config); return new CorsWebFilter(source); // 该配置适用于servlet环境 @Bean public CorsFilter corsFilter() { //1. 添加 CORS配置信息 CorsConfiguration config = new CorsConfiguration()编程客栈; //放行哪些请求方式 config.addAllowedMewww.devze.comthod("*"); //放行哪些原始请求头部信息 config.addAllowedHeader("*android"); //放行哪些原始域 config.addAllowedOriginPattern("*"); //是否发送 Cookie config.setAllowCredentials(true); //2. 添加映射路径 UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource(); corsConfigurationSwww.devze.comource.registerCorsConfiguration("/**",config); //3. 返回新的CorsFilter return new CorsFilter(corsConfigurationSource); }
重写WebMvcConfigurer接口的默认方法
@Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedMethods("*") .allowedHeaders("*") .allowedOriginPatterns("*") .allowCredentials(true); } }
方法三
在配置application.properties或者application.yml文件中进行统一配置
spring: cloud: gateway: globalcors: cors-configurations: '[/**]': allowedMethods: "*" allowedHeaders: "*" allowedOriginPatterns: "*" allowCredentials: true
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论