我正在使用 Laravel 进行一个项目,我需要 CSRF token 进行API调用 . 我的CSRF元标记有时包含过期的标记 . 通过刷新它可以像10个新电话一样 . 所以在完成10次刷新之后,我从我的AJAX调用中得到 TokenMismatchException . 将此API调用设置为CSRF异常不是一种选择,因为API调用负载很重并且包含有 Value 的信息 .
我没有自定义任何middelware类 .
我在javascript中的AJAX调用如下所示:
$.ajax({
url: '/getAllProducts',
type: 'POST',
data: {
type: "gpu",
hash: md5hash,
_token: $('meta[name="csrf-token"]').attr('content')
},
dataType: 'json',
success: function (response) {
md5hash = '';
products = response;
$('.more-information').fadeIn();
$.getScript("/js/filter-products.js", function(){
filterProducts();
});
$.getScript("/js/createPopup.js", function(){
$('.more-information').on('click', createPopup);
$('.open-details').on('click', createPopup);
});
}
});
我的路线看起来像这样
route::post('/getAllProducts', 'PartsController@getAllProducts');
meta csrf令牌的生成类似于标准的Laravel app.blade.php
<meta name="csrf-token" content="{{ csrf_token() }}">
我知道关于这个问题还有其他问题,但我找不到解决方案 . 我尝了几个 .
以下是我尝试过的解决方案列表:
-
添加jquery Ajaxsetup
-
更新laravel
-
清除缓存
真的希望有人可以帮助我
1 回答
在ajax设置中设置令牌 .