Маркер CSRF не совпадает после определенного периода использования - PullRequest
1 голос
/ 10 февраля 2020

Я получил эту ошибку после 2 дней работы. Мой код:

var unitAjax = $.ajax({
  method: 'post',
  url: window.location.origin + '/unit/store',
  data: {
    '_token': '{{csrf_token()}}',
    'unit': $('#unit').val()
  },
  dataType: 'json'
});
unitAjax.done(function(data) {
  // console.log('OK!');
  $('#modalCreateUnit').modal('hide');
  var date = new Date();
  table.row.add([
      data.unit[0].id,
      data.unit[0].unit,
      data.unit[0].created_at,
      data.unit[0].updated_at,
      "<button class='btn btn-success edit-unit"+data.unit[0].id+"' onclick='clickBtn("+data.unit[0].id+")'><i class='fas fa-edit'></i> {{__('edit')}}</button> <button class='btn btn-danger' onclick=delUnit("+data.unit[0].id +")><i class='fas fa-trash-alt'></i> {{__('delete')}}</button>"
  ]).draw( false );
  $('#alertSuccess').show();
  $('#alertDel').hide();
  $('#alertEdit').hide();
});
unitAjax.fail(function (error) {
  $('#alertError').show();
  $('#nameError').text(error.responseJSON.message);
});

Контроллер:

public function store(Request $request) {
    $dataUnit = $this->validate(request(), [
        'unit'  => 'required'
    ]);

    $unit = new Unit();

    $unit->unit = $request->input('unit');
    $unit->save();
    $id = Unit::where('unit', $request->unit)->get();
    return response(['success' => ['Add Success!'], 'unit' => $id]);
}

Это ошибка, которую я получил: enter image description here Я использую jquery 3.3.1, laravel 5.8.35 и php 7.3.9. Спасибо! https://diy.stackexchange.com

1 Ответ

1 голос
/ 10 февраля 2020

set ajax setup csrf token в начале вашего ajax

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});

var unitAjax = $.ajax({
  method: 'post',
  url: window.location.origin + '/unit/store',
  data: {
    'unit': $('#unit').val()
  },
  dataType: 'json'
});
unitAjax.done(function(data) {
  // console.log('OK!');
  $('#modalCreateUnit').modal('hide');
  var date = new Date();
  table.row.add([
      data.unit[0].id,
      data.unit[0].unit,
      data.unit[0].created_at,
      data.unit[0].updated_at,
      "<button class='btn btn-success edit-unit"+data.unit[0].id+"' onclick='clickBtn("+data.unit[0].id+")'><i class='fas fa-edit'></i> {{__('edit')}}</button> <button class='btn btn-danger' onclick=delUnit("+data.unit[0].id +")><i class='fas fa-trash-alt'></i> {{__('delete')}}</button>"
  ]).draw( false );
  $('#alertSuccess').show();
  $('#alertDel').hide();
  $('#alertEdit').hide();
});
unitAjax.fail(function (error) {
  $('#alertError').show();
  $('#nameError').text(error.responseJSON.message);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...