DataTables Ajax 会话过期处理
DataTables Ajax handling for session expiry
我正在使用 Datatables 和 服务器端处理 进行数据加载。
对于当前的实现,table 数据生成没有任何错误,除非存在 会话到期 或 服务器超时 。
我想处理服务器端异常,如果一切正常,应该加载 table 数据。
下面是函数
let scheduler_name = $("#sche_name").val().trim();
$('#monitor_scheduler_tbl').DataTable( {
"aoColumnDefs": [
{ 'bSortable': true, 'aTargets': [0,1,2,3] },{ "bSearchable": false,'aTargets': [-1] }],
"processing": true,
"bDestroy": true,
"bFilter":false,
"serverSide": true,
"ajax": {
"url": config.yaws_file_path + "css_monitor_scheduler.yaws",
"data": function ( d ) {
d.action = "SEARCH_SCHEDULER",
d.scheduler_name = scheduler_name;
},
"complete": function(response){
res = JSON.parse(response.responseText);
if(error = res['err'])
{
objApp.showToastMessage('error', error);
}
}
}
});
在服务器端,您应该根据不同的情况使用 HTTP 错误代码进行响应。
在客户端,您可以为识别这些响应代码的 dataTables 定义一个 ajax 错误处理程序:
"ajax": {
"error" = function (jqXHR, textStatus, error) {
if (jqXHR && jqXHR.status == 440) {
// Session expired - do something here
} else if (jqXHR && jqXHR.status == 408) {
// Request timeout - do something here
} else {
// Some other error - do something here
}
}
我正在使用 Datatables 和 服务器端处理 进行数据加载。
对于当前的实现,table 数据生成没有任何错误,除非存在 会话到期 或 服务器超时 。
我想处理服务器端异常,如果一切正常,应该加载 table 数据。
下面是函数
let scheduler_name = $("#sche_name").val().trim();
$('#monitor_scheduler_tbl').DataTable( {
"aoColumnDefs": [
{ 'bSortable': true, 'aTargets': [0,1,2,3] },{ "bSearchable": false,'aTargets': [-1] }],
"processing": true,
"bDestroy": true,
"bFilter":false,
"serverSide": true,
"ajax": {
"url": config.yaws_file_path + "css_monitor_scheduler.yaws",
"data": function ( d ) {
d.action = "SEARCH_SCHEDULER",
d.scheduler_name = scheduler_name;
},
"complete": function(response){
res = JSON.parse(response.responseText);
if(error = res['err'])
{
objApp.showToastMessage('error', error);
}
}
}
});
在服务器端,您应该根据不同的情况使用 HTTP 错误代码进行响应。
在客户端,您可以为识别这些响应代码的 dataTables 定义一个 ajax 错误处理程序:
"ajax": {
"error" = function (jqXHR, textStatus, error) {
if (jqXHR && jqXHR.status == 440) {
// Session expired - do something here
} else if (jqXHR && jqXHR.status == 408) {
// Request timeout - do something here
} else {
// Some other error - do something here
}
}