gpt4 book ai didi

javascript - API 响应在仅请求一个响应时给出两个响应

转载 作者:行者123 更新时间:2023-12-04 07:54:12 26 4
gpt4 key购买 nike

我正在 JS 中发出一个有效的 API 请求,但是当我只期待一个响应时,它一直给出两个响应。这是代码:

CallCoinGecko();

function CallCoinGecko() {
var cgrequest = new XMLHttpRequest();
var url1 = 'https://api.coingecko.com/api/v3/simple/price?ids=';
var id = 'ethereum';
var url2 = '&vs_currencies=USD&include_market_cap=true&include_24hr_vol=true&include_24hr_change=true';
cgrequest.open("GET", url1 + id + url2, true);
cgrequest.send();
cgrequest.onreadystatechange = function () {
if (cgrequest.status == 200) {
var cgresponse = cgrequest.responseText;
var cgobj = JSON.parse(cgresponse);
console.log(cgobj);
var cgprice = (cgobj[id]['usd']);
console.log(cgprice);
}}}
这是显示两个响应的控制台图像:
image
感谢您对此的任何想法

最佳答案

尝试验证 readyState 的值请求之后。例子:if (cgrequest.status === 200 && cgrequest.readyState === 4)问题是,如前所述,readyState可以有多个值 - 因此每次更改时,都会触发打印响应文本的代码。我确定如果您查看网络选项卡,API 请求不会被执行两次,只有您的响应文本被打印两次。检查是否是 4确认请求已完成 - 并且应该只执行一次。
我预感 API 不会被调用两次是因为每个 console.log() 上的数据完全相同。 .
祝你好运 :)

关于javascript - API 响应在仅请求一个响应时给出两个响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66791492/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com