DataTables Ajax处理会话到期

时间:2017-08-22 07:23:11

标签: jquery ajax datatables server-side

我使用数据表服务器端处理进行数据加载。

对于当前实现,表数据生成时没有任何错误,除非会话到期服务器超时

我想处理服务器端异常,如果一切正常,表数据应该加载。

以下是功能

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);
            }
        }
    }
});

1 个答案:

答案 0 :(得分:0)

在服务器端,您应该针对不同情况使用HTTP错误代码进行响应。

在客户端,您可以为dataTables定义一个Ajax错误处理程序,以识别以下响应代码:

import sys
from PyQt4 import QtCore, QtGui
class Orders(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Orders, self).__init__(parent)
        self.scrollArea_left = QtGui.QScrollArea(widgetResizable=True)
        self.orders_widget = QtGui.QWidget()
        # self.orders_widget.showFullScreen()
        self.orders_grid= QtGui.QGridLayout(self.orders_widget)
        self.qvw1 = QtGui.QWidget()
        self.online_order_hbox = QtGui.QVBoxLayout(self.qvw1)
        self.online_label = QtGui.QPushButton("Online Order")
        self.online_label.setStyleSheet("QPushButton{ background-color: #FF8C00; color: white;outline : None;}")
        self.online_order_hbox.addWidget(self.online_label,QtCore.Qt.AlignTop)
        self.orders_grid.addWidget(self.qvw1,0,0)

        self.w1 = QtGui.QWidget()
        self.w1_vbox=QtGui.QVBoxLayout(self.w1)
        self.date_label1 = QtGui.QLabel("Jan 24,2019           #175", alignment= QtCore.Qt.AlignCenter,objectName="small")
        self.amount = QtGui.QLabel("Amount:"+u'\u20B9 191')
        self.shopping = QtGui.QLabel("Shopping :online")
        self.ordercity = QtGui.QLabel("Order City :Hyderabad")
        self.orderstate = QtGui.QLabel("Order State :TELANGANA")
        self.w1_vbox.addWidget(self.date_label1)
        self.w1_vbox.addWidget(self.amount)
        self.w1_vbox.addWidget(self.shopping)
        self.w1_vbox.addWidget(self.ordercity)
        self.w1_vbox.addWidget(self.orderstate)
        self.online_order_hbox.addWidget(self.w1)
        self.orders_widget.show()
        self.orders_widget.setGeometry(100,200,300,100)
if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    f = Orders()
    sys.exit(app.exec_())