结论
由于我在windows的hosts文件中将我的服务器的ip地址做了简写,导致在发送请求时产生跨域问题,使得cookie无法传递,导致登录信息始终无法获取到。
下图是发送login请求时的set-Cookie请求头中的警告,翻译过来就是:通过set-cookie标头设置cookie的尝试被阻止,因为它具有“SameSite=Lax”属性,但来自跨站点响应,而该响应不是对顶级导航的响应。
排错过程
今天在昨天跑通的网页中尝试登录并执行一系列的功能。但是在运行具体功能的时候,却一直出现用户未登录或没有权限的消息。
但是最诡异的地方就是经过一系列的排查,我发现用别人的电脑就可以访问,甚至于说我自己我用自己的虚拟机也可以访问,但是就是我的电脑上访问不了。我在后端打断点debug的时候发现我发送的请求没有登录信息。于是我就检查我和同学的两个人的电脑之间发送的请求头的差距,发现我的电脑上的请求头并没有发送cookie数据,而cookie数据就是记录登录信息的关键数据。
最后在不断的尝试之后我发现,当我当我输入真正的IP地址的时候,而不是我host文件中修改的名称的时候,我发现这个问题解决了。最后,通过一系列的排查,我发现了上图的问题。
应该来说今天下午在排查bug上画的时间很多,踩的看也是非常深的。所以说坚持记录一下,后续要谨慎的修改hosts文件,防止产生跨域没有cookie的问题。