宝剑锋从磨砺出,梅花香自苦寒来。这篇文章主要讲述SpringBoot使用addCorsMappings配置跨域无效相关的知识,希望能为你提供帮助。
public void addCorsMappings(CorsRegistry registry) {registry.addMapping("
/**"
)
.allowedOrigins("
*"
)
.allowedMethods("
POST"
, "
GET"
, "
PUT"
, "
OPTIONS"
, "
DELETE"
)
.allowCredentials(true)
.allowedHeaders("
*"
)
.maxAge(3600);
}
【SpringBoot使用addCorsMappings配置跨域无效】但是使用此方法配置之后再使用自定义拦截器时跨域相关配置就会失效。
原因是请求经过的先后顺序问题,当请求到来时会先进入拦截器中,而不是进入 Mapping 映射中,所以返回的头信息中并没有配置的跨域信息。浏览器就会报跨域异常。
正确的解决跨域问题的方法时使用 CorsFilter 过滤器。代码如下:
private CorsConfiguration corsConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
// 请求常用的三种配置,*代表允许所有,也可以自定义属性(比如 header 只能带什么,只能是 post 方式等)
corsConfiguration.addAllowedOrigin("
*"
);
corsConfiguration.addAllowedHeader("
*"
);
corsConfiguration.addAllowedMethod("
*"
);
corsConfiguration.setAllowCredentials(true);
corsConfiguration.setMaxAge(3600L);
return corsConfiguration;
}@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("
/**"
, corsConfig());
return new CorsFilter(source);
}
推荐阅读
- Application的adnroid(name的作用)
- 移动 App 应用测试方法与思路
- Android 原生 SQLite 数据库的一次封装实践
- 用了Dapper之后通篇还是SqlConnection,真的看不下去了
- Azure Application Gateway对后端 Web App 进行负载均衡
- C. Uncle Bogdan and Country Happiness solution
- SpringBoot02--将application.yaml配置文件中的属性和组件中的属性进行绑定
- uni-app 功能实现
- android 字符串拼接获取图片