我正在创建一个网络应用程序,它消耗https://restcountries.eu/ API.
当用户输入国家/地区时,我将使用以下命令向 API 发出请求fetch
。然而,我的请求总是被取消。
我测试了捕获用户输入的部分,但我认为问题出在我的fetch
code.
var countryName; // This will receive the user input on a textbox in my HTML file.
var resultado;
function grabCountry(urlendpoint, countryName, endpointfields) {
countryName = document.getElementById('searchInput').value;
var urlendpoint = 'https://restcountries.eu/rest/v2/name/';
var endpointfields = '?fields=topLevelDomain;alpha3Code;callingCodes;altSpellings;subregion;population;latlng;languages;flag';
fetch(urlendpoint + countryName + endpointfields)
.then(response => data)
.then(data => {
console.log(data())
})
}
被取消的原因之一fetch
调用可以是触发事件的 HTML 标记是 HTML Form 标记的子(或孙)标记。在这种情况下,该事件可能会触发表单,该表单将开始提交表单数据,因此它自然会取消您的fetch
call.
解决方案之一是调用preventDefault
触发事件的函数fetch
称呼。请参阅下面的示例:
function myFetchFunction(event) {
event.preventDefault();
fetch("https://my-url-here");
}
<button onclick="myFetchFunction">Fetch</button>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)