我尝试从天气API获取天气信息,一切似乎都运行正常,但我不知道为什么我没有得到任何回复,网址正在工作
//get Response to weather status based on latitude on longitude positions
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var lat = position.coords.latitude;
var lon = position.coords.longitude;
var apiKey = "d64b6f0e97c598ccf0f03718d1690fcc";
var url = "api.openweathermap.org/data/2.5/weather?lat="
var URL = url + lat + "&lon=" + lon + "&APPID=" + apiKey;
console.log(URL);
var xhr = new XMLHttpRequest();
xhr.open("GET", URL, true);
xhr.send();
xhr.onload = function() {
if (xhr.status == 200) {
document.getElementById("title").innerHTML = this.responseText;
}
}
});
} else {
alert("Error");
}
答案 0 :(得分:2)
在浏览器中打开开发人员工具。
查看控制台。查看是否有错误消息。
查看“网络”标签。查看是否正在进行请求,是否正在进行预期,以及是否获得了您期望的响应。
var url = "api.openweathermap.org/data/2.5/weather?lat="
您忘记了网址中的方案。您正在相对于当前页面的URL发出请求。这几乎肯定会导致404 Not Found错误。
xhr.onload = function() { if (xhr.status == 200) { document.getElementById("title").innerHTML = this.responseText; } }
您只有一个onload
处理程序。没有onerror
处理程序,因此没有触发代码,然后XHR收到404错误。