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

标签 jquery ajax datatables query-string

我正在使用 jquery 数据表插件以及 ajaxserverSide 选项。 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

表中的每一列都会发生这种情况。当使用 10 列时,这会创建一个非常长的查询字符串。事实上,我的网络服务器遇到了网址长度限制。

是否有任何方法可以禁止包含某些属性,或者禁止包含空属性或具有默认值的属性?文档没有任何明显的方法来限制查询字符串的大小。

最佳答案

我想出了一个解决这个问题的好方法。 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);

关于jquery - 抑制数据表ajax请求中不必要的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30061476/

相关文章:

javascript - 根据至少 1/10 被选中的复选框禁用提交按钮

javascript - 如何在每 1 秒重复 1 分钟后停止 setTimeout

ajax - 当 CodeIgniter 3 中的 csrf 再生为真时,如何使 Ajax 工作?

javascript - jQuery DataTables - 包含文本字段的列的自定义过滤器

html - 数据表空表文本对齐其他设备上的更改

javascript - 使用 on click 事件显示评论表单

jquery - bootstrap-datepicker 禁用当前月份的下个月 View

javascript - CSS vs jQuery 如何在没有其他插件的情况下创建动态表格样式(斑马)?

javascript - 没有填充的参数无论如何都会被填充?

javascript - JQuery 数据表 : order by data