前台浏览器console报错:
websocket.js?13c0:6 WebSocket connection to 'ws://localhost:8080/ws/ep/213/zu1c2zfs/websocket' failed:
后端报错:
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.
前期疯狂盯着前端报错找解决方案:试了很多都没用。 没有注意到后端开始报告的错误,因为定位是
jwt认证过滤器,但我没有其他问题,所以我不在乎这个错误。
后台报错真的找不到合适的解决办法,开始盯着这个错误去寻找。 这个错误本身也说出了解决方案:onsider using “allowedOriginPatterns” instead. 用 allowedOriginPatterns,我以前用的是setAllowedOrigins(“*”)。
参考博客
博主说明是SpringBoot版本问题。
我的SpringBoot版本2.5.6:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.5.6</version> </dependency>
检查学习视频中使用的是什么SpringBoot版本是2.3.0
综合解决方案: springboot版本的原因导致了写作的变化。 setAllowedOrigins(““) 改成allowedOriginPatterns(””) 。
所以不要放过一个错误,浪费一天多的时间。