首页 > 解决方案 > 当我向服务器发出快速 ajax 请求时,Laravel 会更改我的 CSRF 令牌

问题描述

我知道如何在表单和 ajax 请求中使用 Laravel CSRF 令牌。

我可以发出一次性 ajax 请求,它可以工作。

但是,如果我非常快速地发出两个 ajax POST 请求(例如快速单击按钮两次),Laravel 会更改我的 CSRF 令牌,因此第二个请求会失败。然后页面上的表单也会失败。

如果我每秒钟左右单击一次按钮,一切正常。只有快速或并发请求才能更改 CSRF 令牌。

有任何想法吗?

我正在使用 Laravel 8.21.0

标签: phpajaxlaravelcsrfcsrf-token

解决方案


问题是我Auth::login(user)在每个页面请求上都运行在我们的中间件中登录用户。事实证明 Laravel 不喜欢这样。

所以现在我只调用一次,当用户实际登录时。

似乎现在可以工作了。


推荐阅读