一、 局域设置。在controller 或 方法上添加@CrossOrigin注解
- 在controller上加作用域整个controller
@RestController
@CrossOrigin
public class MyController {
@RequestMapping("/ok")
public Map<String, String> ok() {
Map<String, String> res = new HashMap<>(3);
res.put("name","zhaopq");
res.put("age","18");
res.put("city","天津");
return res;
}
}
- 在方法上加,作用域只有此方法
@RestController
public class MyController {
@RequestMapping("/ok")
@CrossOrigin
public Map<String, String> ok() {
Map<String, String> res = new HashMap<>(3);
res.put("name","zhaopq");
res.put("age","18");
res.put("city","天津");
return res;
}
}
- springboot下不能加在启动类,无效。只能在controller范围加
二、 全局设置。实现WebMvcConfigurer接口重写addCorsMappings类
WebMvcConfig是自定义的类名,主要是实现WebMvcConfigurer接口,项目中那个类实现了WebMvcConfigurer接口就在那个类里写。
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**") // 表示对哪种格式的请求路径进行跨域处理。
.allowedHeaders("*") // 表示允许的请求头,默认允许所有的请求头信息。
.allowedMethods("*") // 表示允许的请求方法,默认是 GET、POST 和 HEAD。这里配置为 * 表示支持所有的请求方法。
.maxAge(1800) // 表示探测请求的有效期
.allowedOrigins("*"); // 表示支持的域
}
}
本文介绍了SpringBoot中处理跨域请求的两种方法:一种是在Controller或方法上使用@CrossOrigin注解,局部生效;另一种是全局配置,通过实现WebMvcConfigurer接口并重写addCorsMappings方法来设置跨域策略,支持所有接口。示例代码详细展示了具体实现过程。
831

被折叠的 条评论
为什么被折叠?



