我正在使用datatable显示表中的记录,并调用ajax从服务器端获取响应,它在ajax中没有“成功”回调属性的情况下运行良好,如果我添加了“成功”回调功能,aoColumnDefs没有加载服务器端数据,有人能告诉我这个问题的原因是什么,还是我遗漏了什么?
请参考下面给出的示例代码。
$('#country').dataTable({
"autoWidth": true,
"processing": true,
"scrollY" : 450,
"language": {
"zeroRecords": "",
"emptyTable": "No Data Available",
"loadingRecords": "",
"processing": "Processing ",
},
"ajax": {
"url": serviceURL,
"type": "POST",
"contentType": 'application/json',
"dataType":"json",
"data" : function ( d ) {
return JSON.stringify(request)
},
"success": function(data, textStatus, jqXHR)
{
// Based on the server side response i am trying to show the response that is result data or exception message.
}
},
"aoColumnDefs" : [ {
"mData": "location",
"sWidth": "15%",
"title": column1Title,
},{
"mData": "date",
}
]});
我的目标是基于服务器端响应,我希望显示结果表或异常消息。
您不应该使用success
属性,它是由jQuery DataTables内部使用的,请参见此注释:
success
-不能被重写,因为它在数据表中内部使用。要操作/转换服务器返回的数据,请使用ajax。dataSrc,或将ajax
用作函数。
要处理Ajax错误,可以将Ajax
用作函数或处理xhr
事件。应在DataTables初始化之前附加事件处理程序。
例如:
$('#country')
.on('xhr.dt', function ( e, settings, json, xhr ) {
if(json === null){
// Ajax error
}
})