有没有办法从用户输入中获取带有端点的 API?

Is there a way to fetch an API with endpoints from user input?

提问人:isjfop 提问时间:7/9/2020 更新时间:7/9/2020 访问量:875

问:

我不善于解释这一点。所以,基本上,我正在制作另一个冠状病毒追踪器,我希望用户能够在表格中输入他们国家/地区的名称(“搜索框”以使其更易于理解)。按回车键后,将从带有jQuery的API中获取数据,如下所示: 数据将显示在网站上。有没有办法做到这一点?谢谢。https://api.covid19api.com/country/<USER_INPUT>

JavaScript HTML jQuery 客户端

评论

0赞 Faraz 7/9/2020
如果您已经有可用的 API 服务 api.covid19api.com/country/<USER_INPUT>则可以使用 JQuery GET 方法来获取数据。
0赞 Faraz 7/9/2020
您可以在此处找到 JQuery 中 Get 方法的文档 api.jquery.com/jQuery.get
0赞 Clara 7/9/2020
嗨,欢迎来到堆栈溢出,在这里检查如何提出一个好问题:stackoverflow.com/help/how-to-ask 你的问题非常广泛 - 你已经尝试过什么,你在哪里卡住了?
0赞 isjfop 7/9/2020
嗯,你不明白我的问题。这个想法是根据用户输入获取一些数据

答:

0赞 AKX 7/9/2020 #1

如果 API 支持 CORS,当然可以。运行代码片段以查看 POC。

async function search() {
  const country = document.getElementById("country").value.trim();
  if(!country) return alert("Enter a country.");
  const url = `https://api.covid19api.com/country/${country}`;
  try {
    document.getElementById("output").value = "Fetching...";
    const res = await fetch(url);
    if(!res.ok) throw new Error("Result not OK");
    const data = await res.json();
    document.getElementById("output").value = JSON.stringify(data, null, 2);
  } catch(err) {
    alert(err);
  }
}
* {
  box-sizing: border-box;
}

label {
  display: block;
}

textarea {
  width: 100%;
  display: block;
}
<form onsubmit="search(); event.preventDefault(); return false">
  <label>Country: <input type=search placeholder="Country code (e.g. FI)" id="country"></label>
  <button type=submit>Search</button>
</form>
<hr />
<textarea readonly id="output" rows=10 placeholder="Results appear here"></textarea>