关于跨域访问的介绍, 参考 跨域访问的相关概念及解决方法。
在基于Spring Boot框架的应用中, 需要跨域访问的场景有很多, 比如:
- 应用内部: 在前后端分离的框架中, Spring Boot 提供后端服务
- 应用外部: 作为微服务,提供对外的Rest服务接口
Spring Boot实现跨域的方式
Spring Boot实现跨域的方式有多种,从配置的作用范围来看,分为全局设置和局部设置,全局设置是对整个应用来配置,局部设置则是对单个控制器类或是单个映射方法而言,具体的方式汇总如下:
- [全局配置] 实现WebMvcConfigurer 接口的addCorsMappings 方法
- [全局配置] 配置跨域资源共享的过滤器 CorsFilter
- [全局配置] 新增配置请求处理拦截器,对OPTIONS 请求方法添加响应头
- [局部配置] 在控制器类上添加 @CrossOrigin注解
- [局部配置] 在控制器类的映射方法上添加 @CrossOrigin注解
- [局部配置] 在控制器类的映射方法中使用代码设置响应头
局部配置会覆盖全