📜  Spring Boot-CORS支持(1)

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

Spring Boot-CORS支持

什么是CORS?

跨来源资源共享(Cross-Origin Resource Sharing,简称CORS)是一种web标准,它允许浏览器发出跨域请求,从而让web浏览器的跨域访问变得安全。

在前端开发中,常常会使用CORS来解决浏览器跨域请求的问题,但是在后端开发中也需要对CORS进行支持。

Spring Boot-CORS支持是什么?

Spring Boot提供的CORS支持是通过设置HTTP响应头部信息来实现的,通过设置Access-Control-Allow-OriginAccess-Control-Allow-CredentialsAccess-Control-Allow-Methods等头部信息,来告诉浏览器,哪些域名可以访问当前服务。

如何使用Spring Boot-CORS支持?

下面是一个简单的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注解,来告诉浏览器,哪些域名可以访问当前服务。