我正在使用 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调用,它应该可以工作。