个人认为问题原因:经过debug发现,第一次获取验证码保存验证码的session和用户登录接口的session不是同一个session,造成这样的原因可能是,浏览器的速度太快了(~ ̄▽ ̄)~ ,在登录页面还没有完全渲染成功的时候,获取验证码的请求就已经发出了,并成功保存在了session中。等页面完全渲染成功后,就是另外一个session。这就导致用户请求登录的时候获取到的验证码为null。
**解决办法:**我自己的解决办法是将获取验证码的js代码放在了js文件的最底部,让它最后编译。不知道这个方法是否也对其他遇到这个问题的小伙伴同样适用。
或者使用js的setTimeout函数,稍停顿一下。
同样,网上还有其他方法:https://blog.csdn.net/qq_26817251/article/details/72902795
希望对你有所帮助。
本人还是一个小白,如有说的不对之处,还请多多包涵,也可以提出来,共同探讨。