我有一个使用 JQuery DataTables 的 Web 应用程序。它使用 ajax
参数来请求 JSON 数据并将其插入表中。
但是,在请求的 .php
文件的顶部会检查用户是否已登录。如果此检查失败,则会回显 JSON 通知。
<?php
session_start();
if (!isset($_SESSION['logged']) || $_SESSION['logged'] !== true) {
$array = array(utf8_encode('logged')=>utf8_encode('false'));
echo json_encode($array);
exit;
}
?>
<小时/>
table = $('#active-issues').DataTable({
"scrollY": pixels,
"dom": '<"top"if>rt<"bottom"><"clear">',
"paging": false,
"responsive":true,
"bProcessing": true,
"ajax": {
"data": function(){
$('#active-issues').DataTable().ajax.url(
"php/get_issues.php"
+ "?id=" + id
+ "&customer_id=" + customerid
);
}
},
columns: [
{ responsivePriority: 1 },
{ responsivePriority: 2 },
{ responsivePriority: 4 },
{ responsivePriority: 3 },
{ responsivePriority: 5 },
{ responsivePriority: 6 },
{ responsivePriority: 7 }
],
"columnDefs": [
{ "type": "alt-string", targets: 5},
{ "type": "alt-string", targets: 6},
]
});
<小时/>
table.ajax.reload(null, false);
是否可以捕获对 JQuery DataTables 的响应?这样我就可以检查结果是否为 { returned: "false"}
并采取相应措施?
最佳答案
花了一段时间并得到了数据表论坛“allan”的帮助。不过问题终于解决了。
通过dataSrc
可以在将ajax结果打印到表中之前对其进行操作,但是,我用它来检查结果是否包含logged
以及是否包含等于 false
并根据情况采取相应行动:
"ajax": {
"data": function(){
$('#active-issues').DataTable().ajax.url(
"php/get_issues.php?id=" + id + "&customer_id=" + customerid
);
},
"dataSrc": function ( json ) {
if(typeof json['logged'] != "undefined") {
if (json['logged'] == 'false') {
location.replace('php/logout.php');
}
}
return json.aaData;
}
},
关于php - JQuery DataTables - 捕获 'ajax' 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36174569/