📅  最后修改于: 2023-12-03 15:20:12.882000             🧑  作者: Mango
跨来源资源共享(Cross-Origin Resource Sharing,简称CORS)是一种web标准,它允许浏览器发出跨域请求,从而让web浏览器的跨域访问变得安全。
在前端开发中,常常会使用CORS来解决浏览器跨域请求的问题,但是在后端开发中也需要对CORS进行支持。
Spring Boot提供的CORS支持是通过设置HTTP响应头部信息来实现的,通过设置Access-Control-Allow-Origin
、Access-Control-Allow-Credentials
、Access-Control-Allow-Methods
等头部信息,来告诉浏览器,哪些域名可以访问当前服务。
下面是一个简单的Spring Boot-CORS支持的示例:
在控制器类上添加@CrossOrigin
注解即可:
@RestController
@RequestMapping("/api")
@CrossOrigin
public class UserController {
//...省略其他代码
@GetMapping("/user")
public UserVO getUser(@RequestParam Integer id) {
//...省略其他代码
return userVO;
}
//...省略其他代码
}
也可以在方法上添加@CrossOrigin
注解:
@RestController
@RequestMapping("/api")
public class UserController {
//...省略其他代码
@GetMapping("/user")
@CrossOrigin(origins = {"http://localhost:8080", "null"})
public UserVO getUser(@RequestParam Integer id) {
//...省略其他代码
return userVO;
}
//...省略其他代码
}
在这个例子中,控制器类和方法上都加上了@CrossOrigin
注解。
控制器类上的@CrossOrigin
表示允许所有来源的请求访问,即其值默认为@CrossOrigin("*")
。
方法上的@CrossOrigin
则表示只允许指定的来源请求,其值为一个数组,其中每个元素是一个允许的请求来源。在这个例子中,origins = {"http://localhost:8080", "null"}
表示只允许本地请求、或者请求来源为null
的请求访问。
CORS是一种web标准,它允许浏览器发出跨域请求,从而让web浏览器的跨域访问变得安全。Spring Boot提供的CORS支持是通过设置HTTP响应头部信息来实现的。开发人员通过在控制器类或方法上添加@CrossOrigin
注解,来告诉浏览器,哪些域名可以访问当前服务。