我正在使用DataTables:
$t = $('#users-table').DataTable({
'paging' : true,
'searching' : true,
'ordering' : false,
'info' : false,
'serverSide': true,
'processing': true,
'ajax' : {
'url' : 'http://localhost/api/users',
'type' : 'GET',
'dataSrc' : 'users',
'error': function() {
// how can i handle the 404 response and show the no results found message?
}
}
...
如果查询没有结果,服务器将返回404未找到的响应。我正在尝试显示无结果消息并从表中删除当前数据,但相反,数据将在表中保持相同的错误响应。
编辑:
我正在使用这样的搜索功能:
$('#data-filter').keyup(function() {
$t.search($(this).val()).draw();
});
因此,如果未找到查询字的结果,则返回404。
答案 0 :(得分:5)
重要强>
当没有结果时,返回404
错误几乎没有任何意义。有关原因,请参阅this excellent answer。
最好将脚本编程为将空数组作为data
参数的值返回,并指出没有结果(recordsFiltered
)和结果集的总大小(recordsTotal
),有关详细信息,请参阅Returned data。
解决方法强>
但是,您可以使用ajax
选项取消警告消息并清除错误表格,如下所示:
"ajax": {
'url': 'http://localhost/api/users',
'type': 'GET',
'dataSrc': 'users',
'error': function(jqXHR, textStatus, errorThrown){
$('#example').DataTable().clear().draw();
}
},
<强>样本强>
请参阅this jsFiddle以获取代码和演示。
答案 1 :(得分:2)
您应该修复服务器端代码,以便在返回零行时返回零行。