【可用】【一眼就会】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); } }; }