目前我正在开发一个 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);
}
需要你的帮助
问候