问题
从spring boot 2.2.9升级到2.6.2版本后,项目启动后访问报错
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. To allow credentials to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead.
原因
SpringBoot升级2.4.0之后,跨域配置中的.allowedOrigins不再可用
解决
异常里也说了,建议使用 allowedOriginPatterns
所以把代码里的allowedOrigins替换为allowedOriginPatterns
例子:
旧代码:
registry.addMapping("/**")
.allowedOrigins(sites)
.allowedMethods("*")
.allowCredentials(true)
.maxAge(3600);
替换后代码:
registry.addMapping("/**")
.allowedOriginPatterns(sites)
.allowedMethods("*")
.allowCredentials(true)
.maxAge(3600);