📜  @crossorigin spring 允许所有 - Java (1)

📅  最后修改于: 2023-12-03 15:13:11.619000             🧑  作者: Mango

关于@CrossOrigin Spring 允许所有

在Spring框架中,@CrossOrigin注解用于解决跨域问题。在前后端分离开发中,前端(如Vue、React等)用于展示页面,而后端(如Spring、Node.js等)提供数据接口。当前端通过Ajax请求后端数据时,如果请求的域名与后端不同,则会被浏览器阻止,这就是跨域问题。

如何使用@CrossOrigin

在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注解是解决跨域问题的一种方式,可以通过设置originsallowedHeadersmethods等属性来控制允许的访问。如果业务需求需要允许所有域名访问接口,可以将origins设置为"*"。但需要注意的是,在允许所有域名访问接口时,存在安全风险。