解决跨域问题有多种方式,
很多文章都是千篇一律。没有实质性,没有给出具体解决方法。
更可悲的是,官方给出的解决方案就是提示,解释是:“对于允许所有源的情况,可以设置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);
}
};
}