CORS跨域
Cross-Origin-Recource-Sharing
SpringBoot 或者 SpringMVC
设置请求头, 请求方法, 允许跨域
同源策略
同源策略代表浏览器默认只允许协议, 域名和端口号一致的页面之间相互访问. 本质上是一种安全策略
而违背此策略就是跨域, 官方推荐的解决方案就是使用CORS进行跨域
方法1 - @CrossOrigin
注解
这个注解里可以设置属性:
value
表示想要支持哪个域的请求
@CrossOrigin(value ="http://localhost:5000")
maxAge
表示请求有效期, 比如当DELETE或者PUT等特殊请求, 在执行前会先执行探测请求. 在有效期范围内, 下次就不用再次执行探测请求, 单位是秒s
allowedHeaders
表示支持的请求头, *
表示所有请求头
在方法上面使用: 代表此方法所有类都支持跨域
1 |
|
也可以在某一个方法上面使用: 代表此方法支持跨域
1 |
|
方法2 - 实现WebMvcConfigurer类
通过实现WebMvcConfigurer实现全局跨域配置
并在该配置类上加上@Configuration
注解
实现该类中的addCorsMappings
方法
1 |
|
需要注意的是正常的SpringMVC项目可能不支持此方法进行全局设置, 需要使用方法3
方法3 - 修改SpringMVC配置文件
在SpringMVC配置下, 修改SpringMVC配置文件, 适用于Spring+SpringMVC+MyBatis整合项目
需要添加的配置文件如下:
1 | <mvc:cors> |