【问题标题】:How to automatically add X-CSRF-TOKEN with jQuery ajax request in Laravel如何在 Laravel 中使用 jQuery ajax 请求自动添加 X-CSRF-TOKEN
【发布时间】:2019-05-10 03:05:41
【问题描述】:

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

我的 ajax 请求

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

【问题讨论】:

    标签: javascript jquery ajax laravel csrf-token


    【解决方案1】:

    在 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);
        }
     }); 
    

    【讨论】:

      猜你喜欢
      • 2019-10-16
      • 1970-01-01
      • 2019-12-17
      • 1970-01-01
      • 2016-03-29
      • 2019-11-30
      • 2017-04-10
      • 2021-03-20
      • 2016-09-19
      相关资源
      最近更新 更多