提问者:小点点

如何从Ajax请求函数返回JSON?


我想建立一个网站,使用客户端调用一个带有JavaScript的API。我不知道怎么做,所以我搜索了一下,发现了jQuery。然后我编写了我的函数来发出请求。它看起来如下所示:

async function makeRequest(url) {
  await $.getJSON(url, function (data) {
    console.log(data);
    return data;
  });
}

这工作良好,print语句打印接收到的数据。但是如果我从另一个函数调用这个函数,它不会返回任何东西。每次都是未定义的。一个例子:

document.addEventListener("DOMContentLoaded", async function () {
  var players = await makeRequest(
    "https://phijoto.ddns.net/Playtime/playtime.json"
  );
  console.log(players);
});

async function makeRequest(url) {
  await $.getJSON(url, function (data) {
    console.log(data);
    return data;
  });
}

如果我运行这个,它会通过第二个print语句输出接收到的数据,但第一个总是返回“undefined”。对此我能做些什么呢?


共1个答案

匿名用户

您必须从makerequest返回一些内容。

还有:不要把回调和承诺混在一起,充其量这会让代码变得混乱。

async function makeRequest(url) {
  const data = await $.getJSON(url);
  console.log(data);
  return data;
}