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

7 浏览
0 Comments

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

我如何在我的Laravel应用程序中自动地为每个ajax请求(GET或POST)添加csrf令牌,而不是手动地添加到每个请求中。\n我的ajax请求\n

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

0
0 Comments

在Laravel中,默认情况下使用Axios HTTP库可以自动将csrf-token元标签的值注册。但是,如果你不使用这个库,你需要手动配置这个行为。

要做到这一点,将token存储在一个HTML meta标签中:


然后,一旦你创建了这个meta标签,你可以命令jQuery库自动将token添加到所有的请求头中。

为此,将以下代码添加到`resources/js/bootstrap.js`文件(对于Laravel 5.7),或者`resources/assets/js/bootstrap.js`文件(对于Laravel 5.6及更早版本)中:

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

现在,你可以在不手动添加csrf token的情况下使用Ajax请求:

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

通过上述步骤,你可以在使用jQuery Ajax请求时自动添加X-CSRF-TOKEN头部,并解决Laravel中的csrf token问题。

0