我试图用远程JSON文件中的数据填充表(Bootstrap datatable)。
这是我使用的功能:
$(document).ready( function() {
$('#twodotsmediatable').dataTable( {
"data": "https://ba.ekapija.com/company/tender-winner-json/103510/pobede-na-tenderima?hash=28cd4a0e334aec8f84a94f30bb340e7f",
"columns": [
{ "data": "tender" },
{ "data": "url" },
{ "data": "date" },
{ "data": "amount" },
{ "data": "company" },
{ "data": "address" }
]
} );
$('.dataTables_length').addClass('bs-select');
});
我也尝试过:
"ajax": "https://ba.ekapija.com/company/tender-winner-json/103510/pobede-na-tenderima?hash=28cd4a0e334aec8f84a94f30bb340e7f"
但两种情况都没有运气。请帮我找出我弄错的地方。
你应该总是使用ajax.url
:
$('#twodotsmediatable').dataTable( {
ajax: {
url: 'https://ba.ekapija....'
},
columns: [ .. ]
})
您无法在浏览器中克服请求阻止,但您可以通过服务器端代理获取所需的JSON。如果您的服务器支持PHP,那么proxy.php
可能如下所示:
<?
echo file_get_contents($_GET['url']);
?>
通过代理获取数据:
$('#twodotsmediatable').dataTable( {
ajax: {
url: 'proxy.php?url=https://ba.ekapija....',
dataSrc: function(d) {
return d[0];
}
},
columns: [ .. ]
})
注意:需要使用dataSrc
,因为JSON似乎是在[[{ item, item, .. } ]]
的形式