1.方式
- 细粒度配置,即在方法上进行配置
- 全局配置,即覆写
WebMvcConfigurer
的addCorsMappings
方法
2.代码
- 细粒度配置
...
@PostMapping("/delete/{id}")
@CrossOrigin(value = "http://localhost:8081",maxAge = 1800,allowedHeaders = "*")
public String deleteBook(@PathVariable Long id){
return String.valueOf(id);
}
...
解释:
在方法上添加@CrossOrigin
注解
value
- 表示支持的域。这里表示来自http://localhost:8081
的请求是允许跨域的
maxAge
- 表示探测请求的有效期。对于DELETE
、PUT
或者自定义请求头的请求在执行请求前会先执行一个探测请求,探测请求不必每次都发送,可以设置一个有效期,有效期过了再重新发送探测请求,这里设置探测请求的有效期是1800s
,即30min
allowedHeaders
- 表示允许的请求头,*
表示所有的请求头都被允许
-全局配置
@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
//对那些请求路径进行跨域处理
registry.addMapping("/book/**")
//允许的请求头,默认允许所有的请求头
.allowedHeaders("*")
//允许的方法,默认允许GET、POST、HEAD
.allowedMethods("*")
//探测请求有效时间,单位秒
.maxAge(1800)
//支持的域
.allowedOrigins("http://localhost:8081");
}
}
网友评论