繁体   English   中英

如何将jQuery DataTable ajax中的数据post到API?

[英]How to post data to API in jQuery DataTable ajax?

大家好,我正在使用 jQuery DataTable 并执行服务器端分页和排序。 我被困在一个地方,我有 API 类型的 POST,所以我需要在 Body 中发送我的有效负载。

我在 ajax 中尝试了POST方法,但它一直抛出415状态代码,即有效负载format is in an unsupported format 我注意到我的有效负载以表单数据的形式发送。 我该如何解决这个问题?

这是我的代码-

$(document).ready(function () {
    $('#dataTable').DataTable({
        columns: [
            { "data": "FirstName" },
            { "data": "LastName" },
            { "data": "PhoneNumber" },
            { "data": "Address1" },
            { "data": "Email" },
            { "data": "Fax" },
            { "data": "Calls" },
            { "data": "Address2" },
            { "data": "Deal status" },
            { "data": "Conversations" }
        ],
        "processing": true,
        "serverSide": true,
        "ajax":{
            "url": "myAPI",
            "dataType": 'application/json',
            "type": "POST",
            "beforeSend": function(xhr) {
                xhr.setRequestHeader("Authorization", "Bearer Token");
            },
            "data": function (d) {
                d.status= "Active";
                d.field = "";
                d.order="asc";
            },
            dataFilter: function(data) {
                var json = jQuery.parseJSON( data );
                json.recordsTotal = json.totalElements;
                json.recordsFiltered = json.totalElements;
                json.data = json.content;
                console.log("total data",json);
                return JSON.stringify( json ); // return JSON string
            }
        }
    });
});

如何解决此 415 状态代码并正确发送有效负载? 请帮忙

您不会从以下位置退回任何东西:

"data": function (d) {
    d.status = "Active";
    d.field = "";
    d.order = "asc";
},

因此,根据ajax.data选项的文档

如果 function 没有返回值(即undefined ),则DataTables 传递到 function 的原始数据 object 将用于请求(function 可能操纵了它的值)。

如果返回 object,则该 object 将用作请求的数据。 发送前不会与DataTables构造的原始数据object合并。

尝试:

"data": function (d) {
    const extraPayload = {};
    extraPayload.status= "Active";
    extraPayload.field = "";
    extraPayload.order="asc";

    return {...d, ...extraPayload}
},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM