[英]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.