код состояния laravel 419 (неизвестный статус) - PullRequest
0 голосов
/ 26 августа 2018

Я делаю вызов ajax, но получаю эту ошибку:

419 (unknown status)

я включаю в метатег:

<meta name="csrf-token" content="{{ csrf_token() }}">

мой стол (без формы):

 <table class="table" id="dataTables">
                    <thead>
                    <tr>
                        <td>Full nametd>
                        <td class="text-center">Lớp</td>
                        <td class="text-center"><input type="checkbox" id="select_all"></td>
                    </tr>
                    </thead>
                </table>

я использую библиотеку DataTables, загружаю все данные из контроллера:

var table = $('#dataTables').DataTable({
            "pagingType": "full_numbers",
            "processing": true,
            "serverSide": true,
            "lengthMenu": [[5, 10, -1], [5, 10, "All"]],
            "iDisplayLength": 5,
            "ordering": false,
            "ajax": '{!! url(Request::segment(1).'/lists?class_id='.Input::get('class_id')) !!}',
            'createdRow': function (row, data, dataIndex) {
                $(row).attr('id', data.id);
            },
            "columns": [
                ...
                {
                    "data": "id", "sClass": "text-center",
                    "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
                        $(nTd).html("<input type='checkbox' name='check[]' value='" + oData.id + "'>");
                    }
                },
            ],
            "language": {
                "url": "{{url('public/extension/datatables/vietnamese.json')}}"
            }
        });

Мой Аякс:

$('#save').click(function () {
            $.ajax({
                type: 'POST',
                url: "{{url('class/store')}}",
                cache: false,
                data: {"check": sThisVal }, //sThisVal get all input checkbox checked
                success: function (r) {
                    $('#msg').html(r);
                },
                error: function (jqXHR, text, errorThrown) {
                    $('#msg').html(jqXHR + " " + text + " " + errorThrown);
                }
            });
        });

Мой маршрут:

Route::post('class/lists', 'ClassController@lists');

Мой метод управления

public function store(Request $request){
    var_dump($request->all());exit;
}

Результат после нажатия на кнопку null ???

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Я добавил токен crsf в раздел данных на моем AJAX, и он работал для меня как шарм.

 $('#save').click(function () {
            $.ajax({
                type: 'POST',
                url: "{{url('class/store')}}",
                cache: false,
                data: {
                       "check": sThisVal, 
                       "_token": "{{ csrf_token() }}",
                }, //sThisVal get all input checkbox checked
                success: function (r) {
                    $('#msg').html(r);
                },
                error: function (jqXHR, text, errorThrown) {
                    $('#msg').html(jqXHR + " " + text + " " + errorThrown);
                }
            });
        });

Надеюсь, это поможет

0 голосов
/ 30 августа 2018

В дополнение к значению токена crsf в мета-заголовке, вам нужно передать его в ваших AJAX-запросах с чем-то вроде:

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

Это из: https://laravel.com/docs/5.6/csrf#csrf-x-csrf-token

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...