2017-09-09 29 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'); 
}