2017-09-09 32 views
0

私はエンドポイントhttps://api.iextrading.com/1.0/tops?symbols=aaplを持っていますが、そのURLで.getjsonを使用しようとすると404エラーが発生します。 apiのドキュメントでは、jsonpリクエストである可能性があると言いますが、もしそうなら、.getjsonにこの呼び出しを読み込ませるにはどうすればいいですか?前もって感謝します。jsonを使用して取得する方法

私は試してみましたコード...

<!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

私たちは信頼します。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS – Stavm

+0

スクリプトのURLが説明のURLと一致しません。 'https://api.iextrading.com/1.0/tops?symbols = aapl' – user2340824

+0

' JSON.parse(data);は必要ないと思います。getJSONの結果は既に解析済みのJSONになっています。あなたの質問のテキストでは、それはOKです、CORSヘッダーを持っていても...なぜコード内の別のリンクを使用しているのかわかりません - 無効です –

答えて

1

使用しているURLは、あなたの説明のURLと一致していない、とURLは、実際に404

を返します。

説明のURLを使用すると、getJSONはデータを解析するので、JSON.parse(data);は不要です。

最後に、データに実際にidという属性がないため、未定義になります。

私はAAPLを返すsymbolに変更しました。

<!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またはリモートリソースは、ヘッダを設定する必要があります。お試しください

関連する問題