繁体   English   中英

如何在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() }}">

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

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

$.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);
    }
 }); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM