如何使用.getjson获取json

时间:2017-09-09 06:55:15

标签: javascript jquery

我有一个端点https://api.iextrading.com/1.0/tops?symbols=aapl但是当我尝试将.getjson与该url一起使用时,我收到404错误。在api文档中,它提到它可能是一个jsonp请求,如果是这样,我怎么能让.getjson能够读取这个调用。提前谢谢。

我尝试的代码是......

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js">
</script>
</head>
<body>

<h2>Create Object from JSON String</h2>

<p id="demo"></p>


<script>
  $.getJSON('https://api.iextrading.com/1.0/stock/tsla', function(data) {
   var obj = JSON.parse(data);
document.getElementById("demo").innerHTML = obj.id;
  });
</script>

</body>
</html>

2 个答案:

答案 0 :(得分:2)

API或远程资源必须设置标头。你可以尝试

function(xhr) {
    xhr.setRequestHeader('X-Test-Header', 'test-value');
}

答案 1 :(得分:1)

您使用的网址与您的说明网址不符,网址实际上会返回404。

使用您的说明的网址有效,但getJSON会解析数据,因此我们无需执行JSON.parse(data);

最后,您的数据实际上没有id属性,因此将返回undefined。

我已将其更改为symbol,返回AAPL。

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js">
</script>
</head>
<body>

<h2>Create Object from JSON String</h2>

<p id="demo"></p>


<script>
  $.getJSON('https://api.iextrading.com/1.0/tops?symbols=aapl', function(data) {
       var obj = data[0];
       document.getElementById("demo").innerHTML = obj.symbol;
  });
</script>

</body>
</html>