diff --git a/bonus-gateway/src/main/java/com/bonus/gateway/config/GlobalCorsConfig.java b/bonus-gateway/src/main/java/com/bonus/gateway/config/GlobalCorsConfig.java new file mode 100644 index 0000000..223ee47 --- /dev/null +++ b/bonus-gateway/src/main/java/com/bonus/gateway/config/GlobalCorsConfig.java @@ -0,0 +1,33 @@ +package com.bonus.gateway.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: 全局跨域配置 + */ +@Configuration +public class GlobalCorsConfig { + @Bean + public CorsWebFilter corsFilter() { + // 创建一个新的CorsConfiguration对象,用于配置跨域请求 + CorsConfiguration config = new CorsConfiguration(); + // 允许所有的HTTP请求方法(GET, POST, PUT, DELETE等) + config.addAllowedMethod("*"); + // 允许所有的域名发起的请求 比如http://localhost:8080、 + config.addAllowedOrigin("*"); + // 允许所有的域名发起的请求(支持正则表达式) 比如http://localhost:8080 + config.addAllowedOriginPattern("*"); + // 允许所有的请求头部信息 比如token、Content-Type + config.addAllowedHeader("*"); + // 创建一个UrlBasedCorsConfigurationSource对象,并使用PathPatternParser进行路径匹配 + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser()); + // 注册跨域配置,应用于所有的URL路径 + source.registerCorsConfiguration("/**", config); + return new CorsWebFilter(source); + } +} \ No newline at end of file