没有得到XMLHTTPRequest的响应

时间:2018-05-01 13:27:40

标签: javascript json ajax api

我尝试从天气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");
    }

1 个答案:

答案 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错误。