2017-09-09 30 views
0

我有一个端点https://api.iextrading.com/1.0/tops?symbols=aapl但是当我尝试使用.getjson与该网址时,我得到一个404错误。在api文档中,它提到它可能是一个jsonp请求,如果是这样的话,我怎样才能让.getjson读取这个调用。先谢谢你。如何让json使用.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

我们信任的CORS。 https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS – Stavm

+0

脚本中的网址与描述的网址不符。 'https://api.iextrading.com/1.0/tops?symbols = aapl' – user2340824

+0

我不认为你需要'JSON.parse(data);'.. getJSON已经解析过JSON结果 - 如果你使用链接在你的问题的文本,没关系,甚至有CORS标题......不知道你为什么在代码中使用不同的链接 - 这是无效的 –

回答

1

您使用的是不符合你的描述的URL网址,网址实际上返回一个404

使用描述的URL工作,但是getJSON解析数据,所以我们不需要做JSON.parse(data);

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

我已将其更改为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>

+0

这很有帮助。有一段时间没有使用JavaScript,这有助于我记住我的错误。 – jrseriel

2

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

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