参考链接
第二个报错的解决方法
问题描述
本质上是y总的SpringBoot
框架课的项目。按理来说其实写的都好好的,包括headers
验证都是一些基本的正常写法。但是很奇怪的是就报错了,出现了跨域的问题,如下所示:
跨域问题,根据个人所总结的经验一般的原因出在前端或者后端有代码的语法错误。这个后续的解决上会说。解决了前端与后端的语法问题后发现依旧报跨域问题,这就很奇怪了,于是发现在后端的运行控制台上有报错:
这个问题经过百度的大量查询,最终也是找出了问题所在,但是错误报告始终没有消除。在这个报错的下面有下面一个信息:
用人话翻译就是jwt
需要至少两个字符,但是找到了0个,也就是说用之前所写的store.state.user.toen
读取不出来token
读取不出来。找了很多的解决方法都没有解决。最终自己做了下尝试,解决了此问题。
解决方案
首先是一开始浅层面的跨域问题,通过这个问题,发现了首先在AddController
中没有添加注解@RestController
然后第二个就是那个出现的报错,从前端代码找到后端代码,我甚至全部删除重新写了一遍依旧没有发现问题,最后找到了一篇解决方案,如上面链接所示,此时才发现,在前端的router
中的index.js
中的bot的路径是/user/
不是/user/bot
,这就使得路径没有能够对起来导致冲突报错。
第三个问题才是重头戏,网上很多的解答都说,是所谓的注解没加或者说权限没开,但是都不是报错的原因。
于是索性摆烂,拿出了某一个用户的其中一个静态的token
,发现是能够传值成功的,从这开始也就找到了问题的来源:token
取不出来,通过console.log(store.state.user.token)
也是证实了这一点,在解决的过程中,突发奇想,
在上一节课(详情可看笔记) 笔记链接
解决当刷新出现跳一下的登录界面的时候用到了localSotrage
的方法来提取token
。于是就拿来尝试。将Authorization
的字符串改成了:Authorization:"Bearer "+ jwt_token,
最终连接成功。
感谢老哥,的却是 @RestController 写成了 @Controller