抑制数据表ajax请求中不必要的参数?

rec*_*ive 8 ajax jquery datatables query-string

我正在使用带有ajaxserverSide选项的jquery datatables插件.该文档指定了每个请求包含的字段.有很多.而且大多数都没有在我的用例中添加任何内容.以下是请求中查询字符串参数的简短摘录.

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
Run Code Online (Sandbox Code Playgroud)

这对表中的每一列都有效.这在使用10列时会创建一个非常长的查询字符串.事实上,我在我的网络服务器中遇到了网址限制.

有没有办法抑制某些属性被包含,或者抑制空的属性或具有默认值?该文档没有任何明显的方法来限制查询字符串的大小.

rec*_*ive 18

我找到了一个解决这个问题的好方法.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);
Run Code Online (Sandbox Code Playgroud)