spring boot 配置corsFilter偶发跨域问题

spring boot 配置corsFilter偶发跨域问题

原始代码

/**
  * <p>Description:跨域请求配置类</p>
  * @author:gusong
  * @date:2019/4/1 19:59
  */
@Configuration
public class CorsConfig {
    /**
     * <p>Description:配置允许跨域访问</p>
     * @return:org.springframework.web.cors.CorsConfiguration
     * @author:gusong
     * @date:2019/4/1 20:01
     */
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.setAllowCredentials(true);
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        return corsConfiguration;
    }

    /**
     * <p>Description:跨域过滤器</p>
     * @return:CorsFilter
     * @author:gusong
     * @date:2019/4/1 20:02
     */
    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig());
        return new CorsFilter(source);
    }
}

新代码

@Configuration
public class CorsConfig {

    @Value("${spring.profiles.active}")
    private String HSAY_ENV;

    private final String[] env = new String[]{"dev","release"};

    private CorsConfiguration buildConfig() {

        CorsConfiguration corsConfiguration = new CorsConfiguration();

        //允许任何域名[多行]
        corsConfiguration.addAllowedOrigin("*");
        //允许任何头
        corsConfiguration.addAllowedHeader("*");
        //允许任何方法
        corsConfiguration.addAllowedMethod("*");
        // 3.允许ajax异步请求带cookie信息
        corsConfiguration.setAllowCredentials(true);

        return corsConfiguration;
    }

    @Bean
    public FilterRegistrationBean corsFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        //注册
        if(Arrays.asList(env).contains(HSAY_ENV)) {
            source.registerCorsConfiguration("/**", buildConfig());
        }
        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
        // 这个顺序很重要,为避免麻烦请设置在最前
        bean.setOrder(0);
        return bean;
    }
}

对比

对比发现什么问题了么?没错就是corsFilter这个方法的返回值。以及对于bean的设置问题,因为是偶发的所以猜到肯定和加载顺序有关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值