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
或者自定義請求頭的請求在執(zhí)行請求前會先執(zhí)行一個探測請求惶傻,探測請求不必每次都發(fā)送,可以設(shè)置一個有效期壹瘟,有效期過了再重新發(fā)送探測請求,這里設(shè)置探測請求的有效期是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");
}
}