从远程JSON文件归档Bootstrap Datatable

问题描述 投票:0回答:1

我试图用远程JSON文件中的数据填充表(Bootstrap datatable)。

JSON文件位于https://ba.ekapija.com/company/tender-winner-json/103510/pobede-na-tenderima?hash=28cd4a0e334aec8f84a94f30bb340e7f

这是我使用的功能:

$(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"

但两种情况都没有运气。请帮我找出我弄错的地方。

json datatables cors
1个回答
0
投票

你应该总是使用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, .. } ]]的形式

© www.soinside.com 2019 - 2024. All rights reserved.