javascript - 如何使用 Datatable 以 POST 类型传递请求正文数据以使用 Javascript 进行服务器端分页

标签 javascript jquery json ajax datatables

我正在尝试使用数据表为 AJAX POST 请求实现服务器端分页

这是我的 Javascript 代码,如果我将 JSON.stringify 用于数据字段,那么 api 将不会命中

$('#tripboard_table').DataTable({
    proccessing: true,
    serverSide: true,
    ajax: {
        "url": "http://localhost:5000/api/v1/trip/get-trip-list",
        "contentType": "application/json; charset=utf-8",
        "type": "POST",
        "dataType": "json",
        "data": {
            "driver_id": "",
            "franchise_id": login_data.franchise_id,
            "page_no": 0,
            "page_size": 10
        }
    },
    columns: [
        { "data": "" },
        { "data": "reference_number" },
        { "data": "consignor_name" },
        { "data": "consignee_name" },
        { "data": "from_city" },
        { "data": "to_city" },
        { "data": "status" },
        { "data": "route_name" },
        { "data": "vehicle_number" },
        { "data": "driver_name" },
        { "data": "pickup_date" },
        { "data": "scheduled_delivery_date" },
        { "data": "total_money_allocated" },
        { "data": "total_money_released" }
    ]



});

如果我们从数据中删除 JSON.stringify 函数并按原样传递数据,那么 api 会被命中并显示错误警报

DataTables warning: table id=tripboard_table - Ajax error. For more information about this error, please see http://datatables.net/tn/7

并且表中没有插入数据。 在控制台中显示

Method Not Allowed The method is not allowed for the requested URL.

请为此提出解决方案..

最佳答案

使用它来添加到数据表的现有请求

function (d) {
                d.driver_id = "";
                d.franchise_id = login_data.franchise_id;
                d.page_no = 0;
                d.page_size = 10;
                return d;
            }

https://datatables.net/manual/server-side#Sent-parameters

$('#tripboard_table').DataTable({
        proccessing: true,
        serverSide: true,
        ajax: {
            "url": "http://localhost:5000/api/v1/trip/get-trip-list",
            "contentType": "application/json; charset=utf-8",
            "type": "POST",
            "dataType": "json",
            "data": function (d) {
                d.driver_id = "";
                d.franchise_id = login_data.franchise_id;
                d.page_no = 0;
                d.page_size = 10;
                return JSON.stringify(d)
                });
            }
        },
        columns: [
            { "data": "" },
            { "data": "reference_number" },
            { "data": "consignor_name" },
            { "data": "consignee_name" },
            { "data": "from_city" },
            { "data": "to_city" },
            { "data": "status" },
            { "data": "route_name" },
            { "data": "vehicle_number" },
            { "data": "driver_name" },
            { "data": "pickup_date" },
            { "data": "scheduled_delivery_date" },
            { "data": "total_money_allocated" },
            { "data": "total_money_released" }
        ]
    
    

    });

关于javascript - 如何使用 Datatable 以 POST 类型传递请求正文数据以使用 Javascript 进行服务器端分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66653753/

相关文章:

jquery - 在 MVC4 razor 中使用 "Remote"验证处理多个提交按钮

jquery - 单击时 Bootstrap 多选选项

jquery - 从 JSON 对象获取值

javascript - 如何使用环回保护服务器 View 和客户端 View

javascript - 请求动画帧返回结果?

javascript/ajax登录系统

javascript - 获取输入事件的先前值

java - 使用 JSON (GSON) 将 PHP 关联数组传输到 Java Map<String, Double>

java - xstream json : convert java. util.Properties 对象文字

javascript - 检查元素类名