如何在 Laravel 中使用 jQuery ajax 请求自动添加 X-CSRF-TOKEN

How to automatically add X-CSRF-TOKEN with jQuery ajax request in Laravel

如何在我的 Laravel 应用程序的 ajax 请求(GET 或 POST)中自动添加 csrf 令牌,而无需手动将其添加到每个请求。

我的ajax请求

   $.ajax({
      type:'post',
      url: "/email/unique",
      data: { "_token": "{{ csrf_token() }}", "email": email }
      success: function(data) {
        console.log(data);
      }
   });

在 Laravel 中,csrf-token 元标记 的值默认注册到 Axios HTTP 库。但是,如果您不使用此库,则需要为您的应用程序手动配置此行为。

为此,将令牌存储在 HTML 元标记中

<meta name="csrf-token" content="{{ csrf_token() }}">

然后,一旦创建了元标记,就可以指示 jQuery 库自动将令牌添加到所有请求 headers。

为此,将 Laravel 5.7Laravel 5.6 及以下版本的代码添加到 resources/js/bootstrap.js 文件中。

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

Ajax 没有 csrf 令牌,因为它会自动添加

$.ajax({
      type:'post',
      url: "/email/unique",
      data: { "email": email }
      success: function(data) {
        console.log(data);
    }
 });