如果当前请求尚未完成,则阻止用户发送新请求

时间:2018-11-13 08:03:37

标签: laravel request laravel-5.4

Laravel中是否有一种方法可以阻止用户在当前请求尚未完成时发出新请求?我想阻止用户提交多个请求,因为他们可能会因为互联网连接速度慢而挂起了该进程。最终,每个请求将创建单独的数据库事务,并绕过验证检查,从而导致记录重复-如果这些事务是在同一时间处理的。请注意,这些请求不是ajax请求,而是表单提交。

1 个答案:

答案 0 :(得分:1)

@D. Petrov在注释中有一个很好的建议,即在HTTP请求未返回响应时禁用“提交”按钮。我个人喜欢它。

但是,如果您需要其他解决方案,则可能需要令牌,类似于CSRF令牌,以标识每个唯一请求。比您只能在服务器第一次接受令牌时接受令牌,然后再使用同一令牌阻止所有后续请求。