如何定义一个函数来修改在Ajax请求上提交给服务器的数据

时间:2015-10-26 09:06:45

标签: javascript jquery ajax datatables

我知道DataTables有ajax.url()方法来更新数据源URL,但我想知道是否有一种方法可以更改用于准备要在Ajax上发布的数据的函数请求。在下面的示例中,我想将其替换为dataFunc

初始化部分工作正常。

function updateDataTable(dataFunc) {
    // If DataTable initialised then update to correct function
    if ($.fn.DataTable.isDataTable("#companyTable")) {
        var companyTable = new $.fn.dataTable.Api("#companyTable");
        companyTable.settings().ajax.data = dataFunc;
        companyTable.ajax.reload();
    } else {
        $("#companyTable").DataTable({
            bFilter: false,
            processing: true,
            serverSide: true,
            ajax: {
                url: "/api/GetCompanyRows",
                type: "POST",
                data: dataFunc
            },
....

3 个答案:

答案 0 :(得分:1)

ajax可以执行一项功能,您可以执行各种操作,其中最重要的是使用localstorage。查看documentation

答案 1 :(得分:0)

我找到了Pro Hands解决方案的替代方案,它允许我直接更新设置。

companyTable.settings()[0].ajax.data = dataFunc;
companyTable.ajax.reload();

答案 2 :(得分:0)

您可以使用ajax.data选项定义一个函数,该函数可用于在数据发送到服务器之前对其进行操作。

$('#companyTable').DataTable({
   searching: false,
   processing: true,
   serverSide: true,
   ajax: {
      url: "/api/GetCompanyRows",
      type: "POST",
      data: function ( d ){
        d.extra_search = $('#extra').val();
      }
   }
});