如何为 X-CSRF 令牌启用生存期活动状态



我正在使用 laravel 5.4。在配置/会话中.php会话的生命周期超过 100 小时,但是当我执行 ajax 请求时,我收到此错误

1) TokenMismatchException
in VerifyCsrfToken.php line 68
at VerifyCsrfToken->handle(object(Request), object(Closure))
in Pipeline.php line 148
at Pipeline->IlluminatePipeline{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;
         }
     });
将其

包含在 html 标头中

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

然后在包含 jquery 脚本 cdn 包含之后,或者在包含所有内容之后,

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

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

最新更新