【可用】【一眼就会】Access-Control-Allow-Origin (CORS 头缺少 'Access-Control-Allow-Origin')【重构跨域请求】【已解决】

解决跨域问题有多种方式,

很多文章都是千篇一律。没有实质性,没有给出具体解决方法。

更可悲的是,官方给出的解决方案就是提示,解释是:“对于允许所有源的情况,可以设置Access-Control-Allow-Origin: *。如果要限制到特定的源,可以设置具体的域名,例如Access-Control-Allow-Origin: https://example.com

也没有说具体如何解决。不如不说。

 

在此我重构跨域请求,问题彻底解决。

先在类上加:@CrossOrigin 注解

再:重构跨域bean

import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;






@Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
              // 重构跨域请求接口
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                // 支持所有映射路径
                registry.addMapping("/**")
                        // 开放域名,测试用:*(发布写具体域名。)
                        .allowedOriginPatterns("*")
                        // 是否发送Cookie信息 true
                        .allowCredentials(true)
                        // 支持的请求方式有:
                        .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS", "PATCH")
                        // 开放所有原始域
                        .allowedHeaders("*")
                        .exposedHeaders("Header1", "Header2")
                        //请求时效1小时
                        .maxAge(3600);
            }
        };
    }

  

 

posted @ 2024-09-28 09:30  刘贵庆  阅读(166)  评论(0编辑  收藏  举报