CORS
小于 1 分钟
CORS, what's this?
相关信息
CORS(Cross Origin Resource Sharing)跨域资源共享,
不同 IP地址 间的数据访问,受到浏览器同源策略限制,要求同源(协议、域名、端口都相同),不允许不同源的资源共享。
Spring Boot 解决跨域
- 在目标方法(接口)或类上添加
@CrossOrigin
注解。 - 添加过滤器,添加允许请求的配置信息。
- 实现
WebMvcConfigurer
接口,实现addCorsMappings
方法
@RestController
public class Controller{
@CrossOrigin
@GetMapping("/list")
public List<Emp> queryList(){}
}
@Configuration
public class CorsConfig{
@Bean
public CorsFilter corsFilter(){
CorsConfiguration corsConfiguration = new CorsConfiguration();
// 添加允许请求的域
corsConfiguration.addAllowedOrigin("*");
// 添加允许请求的头信息
corsConfiguration.addAllowedHeader("*");
// 添加允许请求的方法类型
corsConfiguration.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**",corsConfiguration);
return new CorsFilter(source);
}
}
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
// 允许访问的映射路径
registry.addMapping("/**")
// 允许访问的域
.allowedOrigins("*")
// 允许访问的请求类型
.allowedMethods("GET","POST","PUT","DELETE")
// 允许携带Cookie
.allowCredentials(true)
// 有效期3600秒,有效期类浏览器不必再询问
.maxAge(3600)
// 允许访问的头信息
.allowedHeaders("*");
}
}