jQuery DataTables POST Server Side Json错误

时间:2015-11-02 08:44:41

标签: jquery json ajax post datatables

我的表未通过ajax正确加载。

这是我的js:

$('#initAjaxDataTable').DataTable( {
    "pagingType": "full_numbers",
    "processing": true,
    "serverSide": true,
    "ajax": {
        "url": $('#initAjaxDataTable').data('url'),
        "type": "POST"
    },
    language: {
        url: SITEURL + 'libraries/datatables/datatables.german.json'
    },
    "columnDefs": [
        { "data": "adressnummer", "defaultContent": "<i>Keine</i>", "targets": 0 },
        { "data": "name", "defaultContent": "<i>Keine</i>", "targets": 1 },
        { "data": "email", "defaultContent": "<i>Keine</i>", "targets": 2 },
        { "data": "street", "defaultContent": "<i>Keine</i>", "targets": 3 },
        { "data": "zip", "defaultContent": "<i>Keine</i>", "targets": 4 },
        { "data": "city", "defaultContent": "<i>Keine</i>", "targets": 5 }
    ]
} );

这是我从服务器返回的JSON:

{"draw":1,"data":"[{"DT_RowId".........:}]","recordsTotal":24301,"recordsFiltered":50,"error":null}

数据简短示例:

[
{
    "DT_RowId": "row_1",
    "adressnummer": "9002",
    "name": "test data",
    "email": "",
    "street": "test 26",
    "zip": "16307 ",
    "city": "test",
    "DT_RowData": {
        "pkey": "1"
    }
},
{
    "DT_RowId": "row_2",
    "adressnummer": "9003",
    "name": "test data",
    "email": "",
    "street": "test 24",
    "zip": "16306 ",
    "city": "test",
    "DT_RowData": {
        "pkey": "2"
    }
},
{
    "DT_RowId": "row_3",
    "adressnummer": "9006",
    "name": "testtest data",
    "email": "",
    "street": "test17",
    "zip": "16306 ",
    "city": "test",
    "DT_RowData": {
        "pkey": "3"
    }
},
......

我的表:

<table class="table table-striped table-bordered " id="initAjaxDataTable" data-page-length="50" data-url="/importlist">
        <thead>
        <tr>
            <th>AdressNummer</th>
            <th>Name</th>
            <th>E-Mail</th>
            <th>Strasse</th>
            <th>PLZ</th>
            <th>Ort</th>
        </tr>
        </thead>

</table>

我的表显示每列中默认内容的24301倍。

我在版本1.10.9中使用jquery Datatables,在版本中使用jQuery  2.1.4

我做错了什么?

编辑:Json Lint说我的json是有效的

1 个答案:

答案 0 :(得分:0)

我已使用以下代码修复了我的问题:

"ajax": {
        "url": $('#initAjaxDataTable').data('url'),
        "type": "POST",
        "dataSrc": function (json) {
            json.data = jQuery.parseJSON(json.data);
            return json.data;
        }
    },

我已将dataSrc属性添加到ajax并解析了我的json