Laravel 5.5 Нет сообщений исключение на AJAX Post Call. Строка 203, Handler.php, 419 неизвестный статус - PullRequest
0 голосов
/ 14 апреля 2019

Я столкнулся с этой проблемой с тех пор, как начал использовать APACHE в Windows 10 в качестве среды разработки. Существует абсолютно много ссылок и публикаций, посвященных одной и той же проблеме, и ни одна из этих ссылок не решает эту проблему.

Я получаю "419 неизвестный статус" запроса с кучей других деталей трассировки:

"message": "",
"exception": "Symfony\\Component\\HttpKernel\\Exception\\HttpException",
"line": 203,

Когда я проверял с laravel.log, он говорит,

local.ERROR: The MAC is invalid.

A. Просто для ясности, у меня есть токен CSRF на странице blade / html, я передал его в вызове AJAX в качестве заголовка:

headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') },

B. Я пытался с - куки браузера очищены, а затем, очистка ремесленника

php artisan cache:clear
php artisan config:clear
php artisan view:clear
php artisan route:clear

C. Я пытался очистить с помощью дамп-автозагрузки композитора, а затем очистить кэш

composer clear-cache
composer dump-autoload

Для ознакомления с экспертами, вот как выглядит мой вызов ajax / контроллер Laravel / код маршрута:

AJAX Call:

В приведенном ниже коде 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);
        }
    }); 

Маршрут Ларавела:

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.

Технический стек: Jquery, AngularJS, Laravel 5.5, MariaDB

Любая помощь в этом отношении высоко ценится.

1 Ответ

1 голос
/ 14 апреля 2019

используйте этот метатег в вашем заголовке

<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);
         }
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...