美文网首页
gateway网关的跨域配置

gateway网关的跨域配置

作者: 公子请留步LookMe | 来源:发表于2023-02-07 17:38 被阅读0次

一.在网关服务中添加Filter

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;

/**
 * <p>
 *  解决跨域问题: 配置filter,每个请求来了以后,返回给浏览器之前都添加上那些字段
 * </p>
 *
 * @author zzl
 * @since 2023/1/28 17:06
 */
@Configuration
public class GulimallCorsConfiguration {

    @Bean
    public CorsWebFilter corsWebFilter(){
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();

        CorsConfiguration corsConfiguration= new CorsConfiguration();
        //1、配置跨域
        // 允许跨域的头
        corsConfiguration.addAllowedHeader("*");
        // 允许跨域的请求方式
        corsConfiguration.addAllowedMethod("*");
        // 允许跨域的请求来源
        corsConfiguration.addAllowedOrigin("*");
        // 是否允许携带cookie跨域
        corsConfiguration.setAllowCredentials(true);

        // 任意url都要进行跨域配置
        source.registerCorsConfiguration("/**",corsConfiguration);
        return new CorsWebFilter(source);

    }
}



CorsWebFilter :是有spring提供的过滤器,会在请求到来之前和返回时经过这个过滤器,放入spring的容器中即可生效。

  1. 第一次options请求,此时请求到达gateway,网关在相应报文中告诉浏览器可以跨域: 在这里插入图片描述
  2. 浏览器发起真正的请求,则可以跨域,原理是跨域是浏览器的策略。


    在这里插入图片描述

相关文章

网友评论

      本文标题:gateway网关的跨域配置

      本文链接:https://www.haomeiwen.com/subject/sakfkdtx.html