我正在使用带有ajax
和serverSide
选项的jquery datatables插件。 documentation specifies每个请求中包含的字段。有很多。而且大多数都没有在我的用例中添加任何内容。以下是请求中查询字符串参数的简短摘录。
columns[0][data]:0
columns[0][name]:
columns[0][searchable]:true
columns[0][orderable]:true
columns[0][search][value]:
columns[0][search][regex]:false
columns[1][data]:1
columns[1][name]:
columns[1][searchable]:true
columns[1][orderable]:true
columns[1][search][value]:
columns[1][search][regex]:false
表格中的每一列都会继续。这在使用10列时会创建一个非常长的查询字符串。事实上,我在网络服务器中遇到了网址限制。
是否有任何方法可以禁止包含某些属性,或者禁止显示为空或具有默认值的属性?该文档没有任何明显的方法来限制查询字符串的大小。
答案 0 :(得分:14)
我找到了一个解决这个问题的好方法。 Datatables提供了一种内置方法来改变在发出请求之前调用的ajax查询参数。你可以像这样指定它。在我的情况下,我不关心整个columns
数组属性,所以我只是删除它。
var options = {
sDom: "lftip",
/* set your options to suit your taste */
};
options.ajax = {
url: ajaxUrl,
data: function(data) {
// manipulate data used in ajax request prior to server call
delete data.columns;
}
};
$el.dataTable(options);
答案 1 :(得分:0)
也可以通过POST发送查询以避免任何URL长度限制
$(document).ready(function() {
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": {
"url": "scripts/post.php",
"type": "POST"
}
} );
} );