如何启用 X-CSRF-TOKEN 的终身活动状态

how to enable lifetime active status for X-CSRF-TOKEN

我正在使用 laravel 5.4。 config/session.php 生命周期 session 超过 100 小时,但当我 ajax 请求时,我收到此错误

1) TokenMismatchException
in VerifyCsrfToken.php line 68
at VerifyCsrfToken->handle(object(Request), object(Closure))
in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php line 53

我在下面添加了 header

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

使用 javascript

var token =  $('meta[name="csrf-token"]').attr('content');

获取令牌。

我不希望令牌永远过期。

Ajax 要求的代码

var token = $('meta[name="csrf-token"]').attr('content');
 $.ajax({
        type: "POST",
        url: path + '/load_free_data',
        data: 'selected_day=' + day +'&opt=' + opt  + '&_token=' + token , 
        beforeSend : function()
        {  
             $('.white-overlay').show();
        },
        success: function(e)
         {

             data = e.data;

         }
     });

将其包含在 html header

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

然后包含jquery脚本cdn包含后,或者全部包含后,

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

然后你可以使用你的 ajax 调用,它应该可以工作。