📅  最后修改于: 2023-12-03 15:13:11.619000             🧑  作者: Mango
在Spring框架中,@CrossOrigin
注解用于解决跨域问题。在前后端分离开发中,前端(如Vue、React等)用于展示页面,而后端(如Spring、Node.js等)提供数据接口。当前端通过Ajax请求后端数据时,如果请求的域名与后端不同,则会被浏览器阻止,这就是跨域问题。
在Controller层的接口方法上加上@CrossOrigin
注解即可解决跨域问题,例如:
@Controller
public class MyController {
@CrossOrigin(origins = "*", allowedHeaders = "*", methods = {RequestMethod.GET, RequestMethod.POST})
@GetMapping("/getData")
@ResponseBody
public Result getData() {
// ...
}
}
其中,origins
指定允许的域名,*
表示允许所有域名。allowedHeaders
指定允许的请求头,methods
指定允许的请求方法。
如果想允许所有域名访问接口,只需将origins
设置为"*"
即可,例如:
@CrossOrigin(origins = "*", allowedHeaders = "*", methods = {RequestMethod.GET, RequestMethod.POST})
需要注意的是,允许所有域名存在安全风险,应该谨慎使用。
@CrossOrigin
注解是解决跨域问题的一种方式,可以通过设置origins
、allowedHeaders
和methods
等属性来控制允许的访问。如果业务需求需要允许所有域名访问接口,可以将origins
设置为"*"
。但需要注意的是,在允许所有域名访问接口时,存在安全风险。