1、CORS
CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。
跨源资源共享(CORS)是一种安全概念,用于限制Web浏览器中实现的资源。
IP或端口不同都会面临跨域问题。
处理此问题需要两个要求 -
- RESTful Web服务应该支持跨源资源共享。
- RESTful Web服务应用程序应允许从指定地址访问API。
2、方法级别启用CORS
-
需要通过对控制器方法使用
@CrossOrigin
注解来设置RESTful Web服务的起源。@CrossOrigin
注源支持特定的REST API,而不支持整个应用程序。
/**
* 允许http://localhost:8080访问此接口
* @return
*/
@GetMapping("/test")
@CrossOrigin(origins = "http://localhost:8080")
public String test() {
System.out.println("test");
return "hello";
}
3、全局启用CORS
-
需要定义显示的
@Bean
配置,以便为Spring Boot应用程序全局设置CORS配置支持。
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("http://localhost:8080").allowedHeaders("*").allowedMethods("*").maxAge(3600);
}
};
}