Spring Cloud Gateway网关跨域问题:请求不跨域,返回参数跨域

本文介绍如何为 Spring Cloud Gateway 进行跨域配置,提供了两种方式:一是通过 bootstrap.yml 文件配置,二是通过新增配置类 CorsConfig 解决跨域问题。

pom坐标:spring-cloud-starter-gateway

方式一:bootstrap.yml配置

网关bootstrap.yml增加跨域配置,此配置是最简单的方式,但会有的问题是,其它服务能正常跨域访问,但网关本身的请求会出现,请求不跨域,返回参数跨域的问题,如果能在代码层面解决该问题,烦请告知,谢谢。

spring:
  cloud:
    gateway:
      globalcors:
        cors-configurations:
          '[/**]':
            allow-credentials: true
            allowed-origins: "*"
            allowed-headers: "*"
            # 允许跨域的method
            allowed-methods:
              - OPTIONS
              - GET
              - POST
            # 允许跨域的时间
            max-age: 3600

方式二:新增配置类

在网关层增加该配置类即可解决方式一的网管层返回跨域问题

package com.xrkc.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;

/**
 * @Description:跨域配置
 * @Auther: wangjiao
 * @Date: 2021-05-18 09:23
 */
@Configuration
public class CorsConfig {
    @Bean
    public CorsWebFilter corsWebFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.setAllowCredentials(true);
        source.registerCorsConfiguration("/**",corsConfiguration);
        return new CorsWebFilter(source);
    }
}

以上两种方式,人选其一即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值