看一下用到的工具类
public abstract class CorsUtils { // 请求中有 origin 这个header则返会true public static boolean isCorsRequest(HttpServletRequest request) { return (request.getHeader(HttpHeaders.ORIGIN) != null); } public static boolean isPreFlightRequest(HttpServletRequest request) { return (isCorsRequest(request) && HttpMethod.OPTIONS.matches(request.getMethod()) && request.getHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD) != null); }}
利用CorsRegistry@Configurationpublic class GlobalCorsConfig { @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { // 添加映射路径 registry.addMapping("/**") // 允许的域 .allowedOrigins("*") // 允许携带cookie .allowCredentials(true) // 允许的请求方式 .allowedMethods("GET","POST", "PUT", "DELETE") // 允许的请求头 .allowedHeaders("*"); } }; }}
利用@CrossOrigin注解支持更细粒度的配置,可以用法方法上或者类上
@RestController@RequestMapping("resource")@CrossOrigin({"http://127.0.0.1:8080"})public class ResourceController
其他方式支持跨域看到这你可能会产生疑问,我们的项目中没有跨域的配置啊,怎么还能支持跨域?那估计是把设置header这些活交给网关层来做了 。
推荐阅读
- 交换机配置指南半分钟即可掌握关于SSL配置的内容
- 历史上十大妖后 中国古代十大妖姬
- 满族是不是爱新觉罗的后代
- 酒后不要喝茶,喝茶可以解酒吗
- 赛力斯|华为鸿蒙座舱加持 AITO问界M5后驱版上市:售25.98万元
- 亲热后 男人会坦露出这些秘密
- 同房后才能了解他是哪一型男人
- 女人嫁谁都遗憾,男人娶谁都后悔
- 秦统一六国后为什么迅速灭亡
- 长平之战以后为什么没有直接灭赵 历史记载长平之战白起坑杀赵国战败降卒数量是四十万吗