jQuery API调用显示空白返回

时间:2018-09-01 21:11:51

标签: jquery html json ajax api

由于试图修改页面加载后通过jquery加载的api调用,其他人帮助了我,但无法使其正常工作。它是用php加载的,我不确定语法是否正确。

http://staging3.cryptocritix.com-查看ICO的“最近交易”小工具

<?php
    $args = array(
        'include' => "47,54,62,56,50,64,65",
        'max' => 10
    );
 if ( bp_has_groups( $args) ) :
        while ( bp_groups() ) : bp_the_group(); 
?>

<li>
    <?php
    $cmc_id = $setting['cmc_ticker'];
    $json_url = 'https://api.coinmarketcap.com/v2/ticker/'.$cmc_id.'/';
    ?>
<script>
$(document).ready(function() {
  $.ajax({
    url: '<?php echo $json_url ?>',
    dataType: 'json',
    success: function(data) {                                               
      let ico_roi = data.price;
      let div = document.createElement('div');
      $(div).html(ico_roi);
      console.log(ico_roi);
      $('#price-showing-after-page-load').html(div);
    }
  });
});
</script>
</li>

json网址返回;

{
    "data": {
        "id": 1, 
        "name": "Bitcoin", 
        "symbol": "BTC", 
        "website_slug": "bitcoin", 
        "rank": 1, 
        "circulating_supply": 17244475.0, 
        "total_supply": 17244475.0, 
        "max_supply": 21000000.0, 
        "quotes": {
            "USD": {
                "price": 7185.30010797, 
                "volume_24h": 4157028720.19653, 
                "market_cap": 123906728079.0, 
                "percent_change_1h": -0.06, 
                "percent_change_24h": 2.22, 
                "percent_change_7d": 6.79
            }
        }, 
        "last_updated": 1535841206
    }, 
    "metadata": {
        "timestamp": 1535840724, 
        "error": null
    }
}

1 个答案:

答案 0 :(得分:0)

感谢包含数据的更新。

问题很简单-price位于“ data”->“ quotes”->“ USD”对象的子属性中。它向下3层,它不是对象根的直接子级。通过查看JSON的结构,您可以清楚地看到这一点。我假设当您在PHP中使用此代码时,必须在结构的同一位置访问“价格”。

这是一个工作示例:

$(document).ready(function() {
  $.ajax({
    url: 'https://api.coinmarketcap.com/v2/ticker/1/',
    dataType: 'json',
    success: function(response) {
      $('#price-showing-after-page-load').html(response.data.quotes.USD.price);
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="price-showing-after-page-load">

</div>

我已将根对象重命名为“响应”,以区别于该对象的属性“数据”。

我也对其进行了简化-除非您有一些CSS来更改样式,否则实际上不必创建新的div来保持价格值。在我的代码中,我将其直接插入到现有的div中。