一个网页里发起多个 Ajax 请求后,出现 419 token 验证失败的问题
第一次ajax请求的路由存在于api.php内,所以是不需要csrf token验证的,但是在通用的ajax方法中设置了csrf token的header头
这次请求肯定是成功的,
但是当我第二次(通过用ajax表单提交内容的时候,这个接口写在了web.php的路由里,就需要csrf token的验证了) ,
这时候抛出
当去查找csrf中间件,排插问题的时候:
header里的token和session里的token已经不一致了,这种情况是怎么回事?
这里还有一个小问题:
当我刷新页面后,直接提交表单 (路由在web.php内) ,这时候csrf token的没问题的
其实按照正常的逻辑,路由应该统一存放在web.php里应该更好吧
你关闭这个路由的csrf验证不就行了
@pigzzz 恩,我目前就是关闭掉了这个验证,就是挺奇怪的,只要请求完api.php的路由,去请求web.php的路由就不管用了。。。
@ericdemon
@pigzzz 这个我有写的



@ericdemon 那就不知道原因了
api.php 和 web.php 里的 session 是隔离的,应该是使用的中间件不同,同时访问这两个,session 就被另一个覆盖了。
你这种情况,可以把 api.php 里的路由写在 web.php 里
@pigzzz 楼下的解决方案挺好的,可以学习一下
@Kiddyu 恩,想到比较好的解决方法就是这种,自己做一个api的路由group放在web.php里,这样就可以解决csrf token的问题了,谢谢