控制台打印的错误信息:
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.
当项目使用前后端分离开发时,后端已经对跨域问题进行了处理,但是还是报这个错,解决办法是把 .allowedOrigin(“*”) 修改为 .allowedOriginPattern(“*”);
修改前:
/*** 解决跨域问题* 因为是前后端分离项目,所以跨域问题是不可避免的* 直接在后台进行全局跨域处理*/@Configurationpublic class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*")// 允许向该服务器提交请求的URI,*表示全部允许,在SpringMVC中,如果设成*,会自动转成当前请求头中的Origin.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")// 允许请求的方法.allowCredentials(true).maxAge(3600)// // 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了.allowedHeaders("*");// 允许访问的头信息,*表示全部}}
修改后:
@Configurationpublic class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOriginPatterns("*").allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS").allowCredentials(true).maxAge(3600).allowedHeaders("*");}}
