簡體   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