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.
这个异常,是代码中的跨域设置的的jar版本问题
我是spring的版本2.1.6的时候,
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.allowCredentials(true)
.maxAge(3600)
.allowedHeaders("*");
}
后来spring的版本换成2.5.6后,就抛出上面的异常。
根据异常信息这里修改下
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.allowCredentials(true)
.maxAge(3600)
.allowedHeaders("*");
}
运行正常
当设置allowCredentials为true时,不允许allowedOrigins使用通配符*。在Spring2.5.6版本中,为允许跨域请求的源,应将allowedOrigins替换为allowedOriginPatterns并明确列出允许的源,以避免异常。更新后的配置运行正常。
708

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



