前言
由于最近又开始写博客,刚好碰到的开发问题都重新总结一下。
今天在写Controller的时候又想起跨域访问支持的问题,在这里总结一下我以前用过的方法🖊
1. 在Controller类或方法上加入@CrossOrigin注解
@CrossOrigin有两个参数
origins:允许访问的域列表
maxAge:飞行前响应的缓存持续时间的最大年龄(以秒为单位)
1.1. 使方法支持跨域访问
在方法上加@CrossOrigin
注解
1 |
|
1.2. 使Controller类支持跨域访问
在类上添加@CrossOrigin
注解
1 |
|
2. 重写WebMvcConfigurerAdapter.addCorsMapping方法
- 写一个Conroller的基类Cors,继承
WebMvcConfigurerAdapter
类,并重写addCorsMappings(CorsRegistry)
方法
1 | import org.springframework.context.annotation.Configuration; |
- 实现的Controller继承这个基类Cors
1 |
|
3. 直接拦截在header上加入响应头
1 | res.header('Access-Control-Allow-Origin', '*'); //自定义中间件,设置跨域需要的响应头。 |