自从我开始在Windows 10上使用APACHE作为开发环境以来,我一直面临着这个问题。关于同一问题,有绝对的链接和帖子讨论,这些链接都没有解决这个问题。
我得到了“419未知状态”的请求以及其他一些跟踪细节:
"message": "",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
"line": 203,
当我用laravel.log检查时,它说,
local.ERROR: The MAC is invalid.
答:为了清楚起见,我在blade / html页面中有CSRF令牌,我在AJAX调用中将其作为标题传递:
headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') },
B.我试过 - 清除浏览器cookie然后清除工匠
php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan route:clear
C.我试图使用composer dump-autoload清理然后清除缓存
composer clear-cache
composer dump-autoload
对于专家的细读,这就是我的ajax调用/ Laravel控制器/路由代码的样子:
AJAX电话:
在下面的代码中,param_cust_unique_id作为参数传递给调用此ajax调用的函数。
$.ajax({
type: 'post',
headers: {
'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
},
url: '/getBalanceForCustomer',
data: { "cust_unique_id" : param_cust_unique_id },
success: function (response) {
console.log(response);
},
error: function (response) {
console.log(response);
}
});
Laravel路线:
Route::post('getBalanceForCustomer', 'CustomersController@getBalanceForCustomer');
Laravel控制器方法:
public function getBalanceForCustomer(Request $request) {
//Balance calculation logic, bit longer hence cutting-it short
return $balance;
}
我正在使用开发环境:Visual Studio Code,MySQL Workbench,Chrome Browser。
Tech Stack是:Jquery,AngularJS,Laravel 5.5,MariaDB
在这方面的任何帮助都非常感谢。
在标题中使用此元标记
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
然后是ajax调用:
let formData = $('form').serializeArray();
$.ajax({
url: "/",
type: "POST",
data: {formData, "_token": $('#token').val()},
cache: false,
datatype: 'JSON',
processData: false,
success: function (response) {
console.log(response);
},
error: function (response) {
console.log(response);
}
});