Таблица загрузочной таблицы Jquery с ajax для cakephp 3, но с ошибкой - «Несоответствие токена CSRF» - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь получить несколько записей из базы данных в таблицу загрузочной таблицы jquery через представление CakePHP-3.x, к сожалению, получаю эту ошибку - «Несоответствие токена CSRF Cake \ Http \ Exception \ InvalidCsrfTokenException» введите описание изображения здесь

Таблица загрузочной сетки, которую я использую

Вот мой пример кода:

view.ctp

<table id="adminsViewTable" class="table table-condensed table-hover table-striped" data-toggle="bootgrid">
<thead>
    <tr>
        <th data-column-id="id" data-type="numeric" data-sortable="true">ID</th>
        <th data-column-id="first_name">First Name </th>
        <th data-column-id="last_name" data-order="desc">Last Name </th>
        <th data-column-id="commands" data-formatter="commands" data-sortable="false">Actions</th>
    </tr>
</thead>

<script type="text/javascript">    
    var grid = $("#adminsViewTable").bootgrid({
        ajax: true,
        post: function ()
        {
            return {
                id: "b0df282a-0d67-40e5-8558-c9e93b7befed"
            };
        },
        dataType:"html",
        beforeSend: function (xhr) { /
            xhr.setRequestHeader('X-CSRF-Token', $('[name="_csrfToken"]').val());
        },
        url: "<?php echo $this->Url->build(['controller' => 'admins', 'action' => 'getAdmins']); ?>",
        success:function (data, textStatus) {
          $("#adminsViewTable").html(data);
        },
        formatters: {
            "commands": function(column, row)
            {
                return "<button type=\"button\" class=\"btn btn-xs btn-default command-edit\" data-row-id=\"" + row.id + "\"><span class=\"fa fa-pencil\"></span></button> " + 
                    "<button type=\"button\" class=\"btn btn-xs btn-default command-delete\" data-row-id=\"" + row.id + "\"><span class=\"fa fa-trash-o\"></span></button>";
            }
        }
        }).on("loaded.rs.jquery.bootgrid", function()
        {
            grid.find(".command-edit").on("click", function(e)
            {
                alert("You pressed edit on row: " + $(this).data("row-id"));
            }).end().find(".command-delete").on("click", function(e)
            {
                alert("You pressed delete on row: " + $(this).data("row-id"));
            });
        });
</script>

Большое спасибо за помощь!

...