0

目前我正在开发一个 ajax 以在 laravel 5.7 框架(环境:XAMPP Apache 2.4.6 和 PHP 7.3.0)中通过服务器端加载 yajra 数据表。如果我轻轻地单击每个页面或轻轻地输入字符串搜索,那么它在加载/处理时的行为就可以了。

但是,当我快速单击这些按钮时,随机错误 401 要么在搜索框中快速输入文本。我认为根本原因是我这样做时发生了多个 ajax 调用,但不确定。所以这是我的代码:

Blade.php 中的 JavaScript

<script type="text/javascript" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>

<script type="text/javascript">
    $(document).ready(function() {
        $('#tblpropinsi').DataTable({
            processing: true,
            serverSide: true,
            ajax: {
               url: "{{ route('home.user.list') }}",
               dataType: 'json',
               type: "GET"
            },
            columns: [
                {data: 'id', name: 'id'},
                {data: 'name', name: 'name'},
                {data: 'code', name: 'code'},
                {data: 'description', name: 'description'},
            ]
        });
    });

控制器.php

// 试用 API

public function homeuserlist(Request $request)
{
    try {

        // API Access
        $response = $this->client->request('GET', '/api/user/list', [
            'headers' => [
                'Accept'        => 'application/json',
                'Authorization' => 'Bearer eYjblablabla..',
            ],
            'query' => array_merge(
                            [
                                'type'      => 'table',
                                'col'    => 'id',
                                'findstr'   => '%',
                            ],
                            $request->all()    // yajra serverside query
                        ),

        ]);

    }
    catch (RequestException $e) {
        return response(['error' => 'API failed'], 401);
    }
    return json_decode($response->getBody(), true);
}

需要你的帮助

问候

4

0 回答 0