springcloud-gateway解决跨域

1、跨域产生的条件

当前页面url 被请求页面url 是否跨域 原因
http://www.test.com/ http://www.test.com/index.html 同源(协议、域名、端口号相同)
http://www.test.com/ https://www.test.com/ 跨域 协议不同(http/https)
http://www.test.com/ http://www.baidu.com/ 跨域 主域名不同(test/baidu)
http://www.test.com/ http://blog.test.com/ 跨域 子域名不同(www/blog)
http://www.test.com:8080/ http://www.test.com:7001/ 跨域 端口号不同(8080/7001)

2、后端解决跨域

# 在网关的项目中添加
@Configuration
public class YuejiCorsConfiguration {

    @Bean
    public CorsWebFilter corsWebFilter() {
        // 使用响应式包中方法 org.springframework.web.cors.reactive
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        // 请求头
        corsConfiguration.addAllowedHeader("*");
        // 请求方式 POST PUT DELETE ..
        corsConfiguration.addAllowedMethod("*");
        // 请求来源
        corsConfiguration.addAllowedOrigin("*");
        // 允许携带cookie
        corsConfiguration.setAllowCredentials(true);
        source.registerCorsConfiguration("/**", corsConfiguration);
        return new CorsWebFilter(source);
    }
}
posted @ 2024-09-05 13:00  大列巴同学  阅读(2)  评论(0编辑  收藏  举报