zoukankan      html  css  js  c++  java
  • 如何解决跨域

    1 方式1 配置当次请求允许跨域

    第一步给服务器添加响应头:

    Access-Controll-Allow-Origin:表示支持哪些来源的请求跨域

    Access-Controll-Allow-Methods:表示支持哪些方法跨域

    Access-Controll-Allow-Credentials:跨域请求默认不包含cookie,设置为true可以包含cookie

    Access-Controll-Expose-Headers:跨域请求暴露的字段

    CORS请求时,XMLHttpRequest对象的方法getResponseHeader默认只能拿到六个基本的请求头字段,Cache-Controll,Content-Language,Content-Type,Expires,Last-Modified,Progma,如果想拿到其他字段就必须在Access-Controll-Expose-Headers指定

    Access-Controll-Max-Age:表明该响应的有效时间为多少秒,在有效时间内浏览器无需为同一请求再次发起预检请求,浏览器自身维护一个最大的有效时间,如果该首部字段的有效时间超过最大的值,将不会生效

    第二步:我使用的后端服务是spingboot,所以我直接给网关配置,当所有的请求过来将响应返回给客户端之前往响应头添加第一步的字段,就可以实现跨域访问

    我使用的是spring-gateway作为网关,而其是响应式反应

    所以使用这个filter:org.springframework.web.cors.reactive.CorsWebFilter

    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;
    
    @Configuration
    public class GatewayCORSConfiguration {
    
        @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);
        }
    }
  • 相关阅读:
    paip.云计算以及分布式计算的区别
    paip.索引的种类以及实现attilax 总结
    paip.分布式应用系统java c#.net php的建设方案
    paip.提升性能--多核编程中的java .net php c++最佳实践 v2.0 cah
    paip.中文 分词 ---paoding 3.1 的使用
    paip.2013年技术趋势以及热点 v2.0 cae
    paip.为什么使用多线程的原因.
    paip.提升性能--多核cpu中的java/.net/php/c++编程
    paip.重装系统需要备份的资料总结..v2.0 cad
    paip.禁用IKAnalyzer 的默认词库.仅仅使用自定义词库.
  • 原文地址:https://www.cnblogs.com/mibing/p/15150237.html
Copyright © 2011-2022 走看看