DataTables服务器端处理URL太长

DataTables服务器端处理URL太长,datatables,Datatables,有没有办法阻止它将所有列发送到服务器 当前,AJAX请求如下所示: ssp.php?draw=2&列%5B0%5D%5Bdata%5D=id&列%5B0%5D%5Bname%5D=&order%5B0%5D%5Bcolumn%5D=10&订单%5B0%5Bdir%5D=asc&start=0&length=10&搜索%5Bvalue%5D=&search%5Bregex%5D=false&&u=1448240832750 但它有5689个字符长。我正在寻找一种方法来禁用所有不必要的列数据。这可能

有没有办法阻止它将所有列发送到服务器

当前,AJAX请求如下所示:

ssp.php?draw=2&列%5B0%5D%5Bdata%5D=id&列%5B0%5D%5Bname%5D=&order%5B0%5D%5Bcolumn%5D=10&订单%5B0%5Bdir%5D=asc&start=0&length=10&搜索%5Bvalue%5D=&search%5Bregex%5D=false&&u=1448240832750

但它有5689个字符长。我正在寻找一种方法来禁用所有不必要的列数据。这可能吗?


解决方案是使用post而不是GET

您可以改为通过post发送,因此这些字段都不会出现在发送到服务器的URL上。以下是来自以下方面的示例:

$(文档).ready(函数(){
$('#示例')。数据表({
“服务器端”:正确,
“ajax”:{
“url”:“scripts/post.php”,
“类型”:“职位”
},
};
});

如果使用
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;
    }
  }
})
$(“#您的表”).DataTable({
服务器端:是的,
处理:对,
阿贾克斯:{
url:“此处的url”,
数据:函数(数据){
for(var i=0,len=data.columns.length;i
使用“删除”删除不想发送的字段。例如:

"ajax": {
            "url": "yoururl",
            "data": function (d) {
                for (var i = 0, len = data.columns.length; i < len; i++) {
                    delete data.columns[i];
                }
                delete data.search.regex;
                return $.extend({}, d, {
                    "filterOne": $('#mydropdown').val(),
                });

            },
            "type": "GET",
        },
“ajax”:{
“url”:“yoururl”,
“数据”:功能(d){
for(var i=0,len=data.columns.length;i
使用可抑制不必要的参数,如以下方式:

"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);
        }
    },
“ajax”:{
url:“admin/customers/ajax\u datatables”,
键入:“获取”,
数据:函数(数据){

delete data.columns;//非常感谢!对我来说,我只是删除了
columns
条目:
ajax:{data:({columns,…others})=>others}