抑制数据表 ajax 请求中不必要的参数?
Suppress unnecessary parameters in datatables ajax request?
我正在使用带有 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
table 中的每一列都如此。当使用 10 列时,这会创建一个非常长的查询字符串。事实上,我 运行 在我的网络服务器中遇到 url 长度限制。
有什么方法可以禁止包含某些属性,或者禁止包含空属性或具有默认值的属性?该文档没有任何明显的方法来限制查询字符串的大小。
我找到了解决这个问题的好方法。 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);
也可以通过 POST 发送查询以避免任何 URL 长度限制
$(document).ready(function() {
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": {
"url": "scripts/post.php",
"type": "POST"
}
} );
} );
我正在使用带有 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
table 中的每一列都如此。当使用 10 列时,这会创建一个非常长的查询字符串。事实上,我 运行 在我的网络服务器中遇到 url 长度限制。
有什么方法可以禁止包含某些属性,或者禁止包含空属性或具有默认值的属性?该文档没有任何明显的方法来限制查询字符串的大小。
我找到了解决这个问题的好方法。 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);
也可以通过 POST 发送查询以避免任何 URL 长度限制
$(document).ready(function() {
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": {
"url": "scripts/post.php",
"type": "POST"
}
} );
} );