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