SpringBoot之后跨域配置报错问题
【摘要】 把SpringBoot从2.2.5升级到了2.4.0,导致跨域配置项报错。
域配置项报错
java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*"since that cannot be set on the “Access-Control-Allow-Origin” response header.
原因
- 手贱了一下下,把SpringBoot从2.2.5升级到了2.4.0,导致跨
原配置如下(2.2.5):
解决方案一
- 将2.2的 .allowedOrigins 改为2.4的 .allowedOriginPatterns
解决方案二
- 安全一点,指定可访问域
示例代码
/**
* 跨域配置
* */
@Configuration
class CorsConfig{
@Bean
public FilterRegistrationBean corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true);
// 前端域
// config.addAllowedOrigin("*"); // 允许所有域
config.addAllowedOrigin("http://localhost:2345"); // 允许指定域
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(0);
return bean;
}
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)