📅  最后修改于: 2023-12-03 14:43:50.464000             🧑  作者: Mango
当使用 Laravel 进行表单提交时,有时会遇到“419 错误”。这个错误通常由 Laravel CSRF 中间件引起,它可以帮助保护应用程序免受跨站请求伪造攻击。
当表单提交时,Laravel 会验证该请求是否已设置 CSRF 令牌。如果检测到缺少或不正确的令牌,Laravel 将返回 419 错误。这个错误让你的应用程序更加安全,因为它帮助防止 CSRF 攻击。
一种解决方法是禁用 CSRF 中间件,但这会使应用程序更加脆弱,因此不建议这样做。
正确的方法是使用正确的 CSRF 令牌。如果是 Laravel Blade 模板,可以使用 @csrf
帮助器生成 CSRF 令牌。在表单中添加以下代码行:
<form method="POST" action="/...">
@csrf
...
</form>
如果您使用的是纯 HTML 表单,则需要手动添加 CSRF 令牌。可以将 Laravel 生成的 CSRF 令牌作为隐藏字段添加到表单中。例如:
<form method="POST" action="/...">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
...
</form>
Laravel CSRF 中间件是保护您的应用程序免受 CSRF 攻击的重要组件。如果您收到“419 错误”,则表示您的 CSRF 令牌无效或不正确。通过正确使用 CSRF 令牌,可以避免这个问题并保护您的应用程序。