SpringBoot2.0(五) CORS跨域

  • 部分跨域

@CrossOrigin注解支持类级别,方法级别添加。可以在controller类或者方法上添加,支持部分接口跨域。在两者上都添加时,方法级别的覆盖类级别的。

属性 说明
origins 允许的域列表,“*”表示支持所有的域
maxAge 预响应缓存的最大持续时间,单位秒
allowedHeaders 在实际请求中允许的请求头列表,“*”表示允许所有的headers
exposedHeaders 在响应header中设置客户端可见的header,该header不是常见的Cache-Control,Content-Language等,此处设置的header都来自于“Access-Control-Expose-Headers”中。
methods  支持的HTTP请求方法集合
allowCredentials

设置是否发送凭证,该值是在预请求的响应的“Access-Control-Max-Age”上设置的。该值决定在发起跨域请求时,浏览器是否需要发送凭证。

false  —  cookies不应该包括在内;

""    —  意味着未定义,允许所有值;

true   —  预响应将包括值设置为true的报头Access-Control-Allow-Credentials

 

  • 全局跨域

在springboot项目环境下,声明如下bean:

@Configuration
public class ConfigService {

@Bean
public WebMvcConfigurer corsConfigurer()
{
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*").allowedMethods("*").allowCredentials(true);
}
};
}
}

就支持全局跨域了。

原文地址:https://www.cnblogs.com/asfeixue/p/9117860.html