我有一个端点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>
答案 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>