呼叫此 API 的正確方法是什么?api url 是:https ://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd
我試過這段代碼
<p id="demo">
</p>
<script>
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
document.getElementById("demo").innerHTML = myObj.bitcoin;
}
};
xmlhttp.open("GET", "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd" new Date().getTime(), true);
xmlhttp.send();
</script>
但是我得到的值是[object Object]。我想獲得“usd”中的值。
我哪里錯了?謝謝
用 myObj.usd 替換 myObj 但回傳空值
uj5u.com熱心網友回復:
API 以 的形式回傳{"bitcoin":{"usd": -insert value here-}},所以你必須使用myObj.bitcoin.usd
uj5u.com熱心網友回復:
當您將innerHTML 設定為提到的@SuspenseFallback 時,您需要訪問usd物件的一部分。
您還需要 new Date().getTime()從 URL 字串中洗掉該部分。我在端點的API 檔案中沒有看到日期部分。price
uj5u.com熱心網友回復:
你應該使用 fetch 方法。使用本機 javascript 呼叫 API 的更好和現代的方式。
您執行此操作的方式沒有問題,但是您可以使用 fetch 而不是 XHR 來做一些事情。
您可以通過此鏈接閱讀有關 fetch 的更多資訊:https ://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
有一個使用 fetch 的例子:
fetch(
"https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"
)
.then((response) => response.json())
.then((data) => {
console.log(data);
});
或者您可以使用 async-await 來實作相同的結果:
(async () => {
const response = await fetch(
"https://api.coingecko.com/api/v3/simple/price?ids=bitcoin&vs_currencies=usd"
);
const data = await response.json();
console.log(data);
})();
注意:我使用了 Javascript 自呼叫函式,它是一個呼叫自身的函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/453028.html
標籤:javascript html 科尔达
