繁体   English   中英

AJAX请求成功,但Datables未填充数据

[英]AJAX request is successful but Datables not populating with data

我正在成功进行AJAX调用,但是数据仍然没有被数据填充。

HTML:

<div id="modal"class="modal-body">
  <button type="button" onclick="javascript:vulnDetails()" class="btn btn-info btn-lg" id="modalButton">Show Vulnerabilities</button><div id="myData">
    <table id="example" class="display" style="display:none"cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>ip</th>
            <th>description</th>
            <th>vulnerability</th>
        </tr>
    </thead>
   </table>          
  </div>
</div>

Javascript:

function vulnDetails(){
    $('#example').show();
   $('#example').DataTable( {
        "ajax": {
                 type: "POST",
                 url: '/vulnDetails',
                 data: function ( d ) {
                    return JSON.stringify(data2)},
                 contentType: "application/json; charset=utf-8",
                 dataType: "json",
                 dataSrc: ""
        },
        "columns": [
            { "data": "ip" },
            { "data": "desciption" },
            { "data": "vulnerability" },
        ]
    } );
}

该请求返回200码并创建了该表,但它只是说没有可用数据。

有人有什么想法吗?

JSON:

 [{'ip': '1.1.1.1', 'vulnerability': 118860, 'description': 'The credentials supplied for the snmp scanning feature encountered an error.'}, {'ip': '1.1.1.1', 'vulnerability': 127166, 'description': 'Samba winbind_name_list_to_sid_string_list security bypass'}, {'ip': u'1.1.1.1', 'vulnerability': 132630, 'description': 'Samba SAMR information disclosure'}, {'ip': '1.1.1.1', 'vulnerability': 132630, 'description': 'Samba SAMR information disclosure'}]

尝试删除空函数dataSrc

移除了dataType:“ json”,

function vulnDetails(){
    $('#example').show();
   $('#example').DataTable( {
        "ajax": {
                 type: "POST",
                 url: '/vulnDetails',
                 contentType: "application/json; charset=utf-8",
                 dataSrc: ''
        },
        "columns": [
            { "data": "ip" },
            { "data": "desciption" },
            { "data": "vulnerability" },
        ]
    } );
}

数据结构应该像

  {
  "data": [{'ip': '1.1.1.1', 'vulnerability': 118860, 'description': 'The credentials     supplied for the snmp scanning feature encountered an error.'}, {'ip': '1.1.1.1', 'vulnerability': 127166, 'description': 'Samba winbind_name_list_to_sid_string_list security bypass'}, {'ip': u'1.1.1.1', 'vulnerability': 132630, 'description': 'Samba SAMR information disclosure'}, {'ip': '1.1.1.1', 'vulnerability': 132630, 'description': 'Samba SAMR information disclosure'}]
  }

如果您根据选择此路线。 您应该已经包括了后端功能。 那里您的数据应该是数组中的值,其中数据作为键,例如在php中

    $data_to_return=array('data'=>$your_data);
    echo $data_to_return;

干杯

这是您的代码可以工作的方法。 更正

1)JSon数组无效,这是一个典型的有效JSon对象

            [
               {
                "ip": "1.1.1.1", 
                "vulnerability": "118860", 
                "description": "The credentials supplied for the snmp  scanning feature encountered an error."
                }, 
               {
               "ip": "1.1.1.1", 
               "vulnerability": "127166", 
               "description": "Samba winbind_name_list_to_sid_string_list security bypass"
               },
              {
             "ip": "1.1.1.1", 
             "vulnerability": "132630", 
             "description": "Samba SAMR information disclosure"
              }, 
             {
              "ip": "1.1.1.1",
               "vulnerability": "132630",
               "description": "Samba SAMR information disclosure"
              }
            ]

对不起,我之前忽略了这个

2)更正描述中的拼写

         { "data": "desciption" },

改成

         { "data": "description" },

然后离开。 干杯

尝试这个 :

function vulnDetails(){
    $('#example').show();
   $('#example').DataTable( {
        "ajax": {
                 type: "POST",
                 url: '/vulnDetails',
                 "dataSrc": function(data){ return data.data; },
                 "data": function(data){
                // Send data as json for POST.
                return JSON.stringify(data); 
                }
                 contentType: "application/json; charset=utf-8",
                 "processData": true,
                 "async": true,
                  "accepts": {
                      json: "application/json, text/javascript"
                   }
                        },
        "columns": [
            { "data": "ip" },
            { "data": "desciption" },
            { "data": "vulnerability" },
        ]
    } );
}

暂无
暂无

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

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