大部分SpringBoot 项目都是采用前后端分离的方式,这样一来,就会碰到跨域资源共享的问题。
1、注解实现
在Spring Boot 2中,提供了注解的方式来对CORS跨域访问进行支持。
1.1 在方法上注解
可以将@CrossOrigin注解在方法上。这样该方法可以被跨域访问。
@CrossOrigin
@GetMapping(value = "/cros")
public String cros() {
return "cros";
}
1.2 在Controller上注解
也可以对整个Controller上注解。这样整个Controller下的所有方法都支持跨域访问。
@RestController
@CrossOrigin
public class CrosController {
}
2、全局配置
在Spring Boot 2中,通过复写WebMvcConfigurer中的addCorsMapping方法,可以达到全局配置的目标。
@Configuration
public class CorsConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry corsRegistry) {
// 允许跨域访问资源定义: /api/ 所有资源
corsRegistry.addMapping("/api/**")
// 只允许本地的9000端口访问
.allowedOrigins("http://localhost:9000", "http://127.0.0.1:9000")
// 允许发送Cookie
.allowCredentials(true)
// 允许所有方法
.allowedMethods("GET", "POST", "PUT", "DELETE", "HEAD");
}
}
网友评论