加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

SpringCloudGateWay之网关跨域问题解决

发布时间:2020-12-15 07:14:33 所属栏目:Java 来源:网络整理
导读:应用场景: 所有的微服务是通过网关这个入口,在和前端对接口时,必然设计到有关跨域的问题。关于服务端跨域有很多方案,可以加注解(指定具体的路径允许跨域),也可以统一配置。 另外如果不在网关入口这配置,势必会造成一个很大的影响,那就是前端通过网关入

应用场景:
所有的微服务是通过网关这个入口,在和前端对接口时,必然设计到有关跨域的问题。关于服务端跨域有很多方案,可以加注解(指定具体的路径允许跨域),也可以统一配置。

另外如果不在网关入口这配置,势必会造成一个很大的影响,那就是前端通过网关入口调用其它微服务,通常会出现如下错误:

Access to XMLHttpRequest at 'xxx' from origin ' has been been blocked by CORS policy

核心代码(解决方案):

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;

@Configuration
public class CorsConfig {

    @Bean
    public CorsWebFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
        source.registerCorsConfiguration("/**",buildConfig());
        return  CorsWebFilter(source);
    }

    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration =  CorsConfiguration();
        //在生产环境上最好指定域名,以免产生跨域安全问题
        corsConfiguration.addAllowedOrigin(*);
        corsConfiguration.addAllowedHeader();
        corsConfiguration.addAllowedMethod();
        return corsConfiguration;
    }
}

SpirngCloud GateWay解决方案:
Spring Cloud Gateway – Cors解决跨域问题

注解解决方案:
java后端解决跨域问题(过滤器或者注解)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读