请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

拦截器拦截getaccountinfo接口获取的userId和token为空值


https://img1.sycdn.imooc.com//szimg/60d0323f0856192c06660498.jpg

https://img1.sycdn.imooc.com//szimg/60d0329908a3a14806660498.jpg
在拦截getaccountinfo接口时,从请求头获取的userId和userToken的值为null,不知道是什么原因

正在回答

6回答

经过测试发现,其实是POST请求之前会先发起一次OPTIONS请求,这个OPTIONS请求也会被拦截到,里面的userId和token都是空的,所以导致这个错误,解决方法就是放行OPTIONS请求

https://img1.sycdn.imooc.com//szimg/60db379509f69d6b20481084.jpg

0 回复 有任何疑惑可以回复我~
提问者 weixin_慕用4392849 2021-06-21 23:56:59


60d0b4f5000133b207100473.jpg

60d0b4fd00013e4b06910274.jpg
打断点发现,拦截的时候,request请求头里面确实没有userid和token信息,但是前端为什么发了两个请求,第一个请求头里面有userid和token信息,第二个是没有userid和token信息,拦截的是没有信息的请求,所以后端就取到空值,为什么会发送两个请求呢,而且两个请求头的信息会不一样

0 回复 有任何疑惑可以回复我~
  • 两个请求的url都是一模一样的?
    这。。。有毒,是连续点击两次吗?这也不可能得,本地有了userid和token那一定会携带的。但是前端源码肯定是对的。
    尝试在前端打断点试试看呢?
    回复 有任何疑惑可以回复我~ 2021-06-21 23:59:11
  • 提问者 weixin_慕用4392849 回复 风间影月 #2
    我没有点两下,我在后端拦截的地方打了断点,不可能能连续点两下的,前端页面cookie里面是有值的,但是也不知道为什么,它就好像是发了两次同样的请求,第一次发了但是没有发到后端,但是携带了信息,后端没有拦截到,然后又发了一次,这次发到了后端,后端拦截到了,但是不知道为啥,userid和usertoken信息没了,感觉就像是这样的
    回复 有任何疑惑可以回复我~ 2021-06-22 00:13:34
  • 提问者 weixin_慕用4392849 #3
    在前端打了断点,发现那个前端发送请求的那个设置请求头的信息的那段代码没有走,发送请求的时候,导致请求头里面没有headerUserId和headerUserToken信息,后端就拿不到信息,导致后端报错,但是发送请求的那里设置请求头的那段代码不是一定会走吗
    回复 有任何疑惑可以回复我~ 2021-06-22 10:39:53
提问者 weixin_慕用4392849 2021-06-21 15:02:06

好的,我试一试,但是我昨天试的最后一次是成功的,可以获取到不为null的值,但是今天起来啥都没改就又获取不到值,也不知道怎么回事

0 回复 有任何疑惑可以回复我~
风间影月 2021-06-21 14:48:14

打断点跟踪一下看看

0 回复 有任何疑惑可以回复我~
提问者 weixin_慕用4392849 2021-06-21 14:47:38


https://img1.sycdn.imooc.com//60d035860001073c06660498.jpg

https://img1.sycdn.imooc.com//60d035a50001b4e006660498.jpg
发送请求时请求头里面有userid和token,好像就在拦截的时候就变成空的了,这不知道怎么回事

0 回复 有任何疑惑可以回复我~
风间影月 2021-06-21 14:40:56

可能在注册登录的时候就设置错误,导致前端获取不到,于是乎再次请求别的接口就没有了

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信