首页 >后端开发 >php教程 >如何使用 Laravel 修复 Ajax 请求中的 419 POST 错误?

如何使用 Laravel 修复 Ajax 请求中的 419 POST 错误?

Barbara Streisand
Barbara Streisand原创
2024-10-30 20:13:02241浏览

How to Fix the 419 POST Error in Ajax Requests with Laravel?

Ajax LARAVEL 419 POST 错误已解决

当尝试在没有正确的 CSRF 令牌验证的情况下发出 Ajax POST 请求时,通常会发生此错误。 Laravel 实现了 CSRF 令牌保护,以防止来自外部源的恶意请求。

问题:

对 /company 端点进行 Ajax 调用时遇到 POST 错误。

解决方案:

要解决此问题,您需要在 Ajax 请求中包含 CSRF 令牌。您可以通过将以下代码片段添加到 Ajax 调用中来完成此操作:

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

这会将生成的 CSRF 令牌添加到 Ajax 请求的标头中,确保 Laravel 可以验证请求是否来自经过身份验证的用户。

说明:

Laravel 会自动为每个活动用户会话生成唯一的 CSRF 令牌。此令牌存储在 HTML 文档中的元标记中:

<meta name="csrf-token" content="your-generated-token" />

进行 Ajax 调用时,CSRF 令牌必须与存储在元标记中的令牌匹配。如果不匹配,Laravel 将拒绝请求并返回 419 错误。

替代解决方案:

如果您想从 CSRF 令牌验证中排除某些 URI 路径,您可以将它们添加到VerifyCSRFToken中间件中的以下数组中:

protected $except = [
    '/route_you_want_to_ignore',
    '/route_group/*'
];

以上是如何使用 Laravel 修复 Ajax 请求中的 419 POST 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn