2015-11-23 122 views
3

有没有办法阻止它将所有的列发送到服务器?DataTables服务器端处理URL太长

目前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个字符长。我正在寻找一种方法来禁用所有不必要的列数据。这可能吗?

回答

6

您可以通过POST发送代替,所以没有这些字段将出现在发送至服务器的URL。下面是来自docs一个例子:

$(document).ready(function() { 
    $('#example').DataTable({ 
     "serverSide": true, 
     "ajax": { 
      "url": "scripts/post.php", 
      "type": "POST" 
     }, 
    }; 
}); 
0

如果使用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; 
    } 
    } 
}) 
相关问题