首页 > 后端开发 > php教程 > Laravel 5.5 AJAX 419 错误:如何修复 CSRF 令牌问题?

Laravel 5.5 AJAX 419 错误:如何修复 CSRF 令牌问题?

DDD
发布: 2024-12-01 11:08:11
原创
484 人浏览过

Laravel 5.5 AJAX 419 Error: How to Fix CSRF Token Issues?

Laravel 5.5 AJAX 调用返回未知状态 419:解决 CSRF 令牌问题

问题:

我正在执行Laravel 5.5 中 AJAX 调用但遇到“419 (未知状态)”错误。尽管我的页面上没有任何表单,但我怀疑问题出在 CSRF 令牌上。我该如何解决这个问题?

答案:

客户端:

在 HTML head 部分中,插入以下:

<meta name="csrf-token" content="{{ csrf_token() }}">
登录后复制

这会生成一个唯一的 CSRF 令牌,服务器将使用该令牌验证传入请求。

AJAX 请求:

修改您的 AJAX 请求以在标头中包含 CSRF 令牌:

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

这可确保服务器可以验证请求的来源并防止 CSRF

Laravel 中间件(可选):

Laravel 自动应用 CSRF 中间件来保护 POST 请求。要针对特定​​路由(例如,处理 AJAX 调用的中间件)禁用此中间件,请将以下行添加到您的 AppHttpMiddlewareVerifyCsrfToken 中间件:

/**
 * The URIs that should be excluded from CSRF verification.
 *
 * @var array
 */
protected $except = [
    '/fetch-company/*',
];
登录后复制

参考:

  • [Laravel CSRF保护](https://laravel.com/docs/5.5/csrf)
  • [AJAX 请求的 CSRF 令牌](https://laravel.com/docs/5.5/csrf#csrf-token-for -ajax-请求)

以上是Laravel 5.5 AJAX 419 错误:如何修复 CSRF 令牌问题?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板