有没有办法阻止它将所有列发送到服务器?
目前AJAX请求如下:
ssp.php?绘制= 2&列%5B0%5D%5Bdata%5D = ID&列%5B0%5D%5Bname%5D =&顺序%5B0%5D%5Bcolumn%5D = 10&顺序%5B0%5D%5Bdir%5D = ASC&开始= 0&长度= 10搜索%5Bvalue%5D =&搜索%5Bregex%5D =假&_ = 1448240832750
但它长5689个字符.我正在寻找一种方法来禁用所有不必要的列数据.这可能吗?
Mar*_*rio 16
您可以通过POST发送它,因此这些字段都不会出现在发送到您服务器的URL上.以下是文档中的示例:
$(document).ready(function() {
$('#example').DataTable( {
"serverSide": true,
"ajax": {
"url": "scripts/post.php",
"type": "POST"
},
};
});
Run Code Online (Sandbox Code Playgroud)
如果您使用GET尝试删除不必要的列。
$('#your-table').DataTable({
serverSide: true,
processing: true,
ajax: {
url: 'url-here',
data: function (data) {
for (var i = 0, len = data.columns.length; i < len; i++) {
if (! data.columns[i].search.value) delete data.columns[i].search;
if (data.columns[i].searchable === true) delete data.columns[i].searchable;
if (data.columns[i].orderable === true) delete data.columns[i].orderable;
if (data.columns[i].data === data.columns[i].name) delete data.columns[i].name;
}
delete data.search.regex;
}
}
})
Run Code Online (Sandbox Code Playgroud)
小智 5
use 可以抑制不必要的参数,如下所示:
"ajax":{
url :"admin/customers/ajax_datatables",
type: "get",
data: function ( data) {
delete data.columns; // <-- too long and not neccessary if you don't use
//and you can add more data
data.form_search_params = $("#frm_search").serializeFormJSON();
},
error: function (xhr, error, thrown) {
console.log(xhr);
}
},
Run Code Online (Sandbox Code Playgroud)