2

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

我的ajax请求

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

1 回答 1

5

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

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

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

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

为此,将代码添加到resources/js/bootstrap.js文件中Laravel 5.7resources/assets/js/bootstrap.js适用于Laravel 5.6和低于版本。

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

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

$.ajax({
      type:'post',
      url: "/email/unique",
      data: { "email": email }
      success: function(data) {
        console.log(data);
    }
 }); 
于 2018-12-08T17:12:35.693 回答