如何启用X-CSRF-TOKEN的生命周期活动状态

时间:2018-12-26 14:17:51

标签: laravel laravel-5.4

我正在使用laravel 5.4。在config / session.php中,一个会话的生存期超过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

我在下面的标题中添加了

<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;

         }
     });

1 个答案:

答案 0 :(得分:1)

将此包含在html标头中

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

然后在包含jquery脚本cdn include或之后包含所有

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

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