如何用navigator.geolocation调用获得经纬度的天气API?

时间:2015-08-26 17:03:33

标签: javascript ajax api

我正在尝试使用Geolocation APIDark Sky API构建纯JS天气应用程序。我是JavaScript的新手,但非常愿意学习。我设法通过MDN网站上提供的脚本获得用户的位置。你可以看到my code here(我知道JS代码应该在一个单独的文件中 - 我会在一切顺利运行时更改它)。

以下是我的问题:如何使用用户特定的纬度和经度调用Dark Sky API?我不确定如何编写XMLHttpRequest。

这是(事先请原谅)尝试:

function getWeather() {
    var xhr = new XMLHttpRequest();
    xhr.open("GET","https://api.forecast.io/forecast/30e55c9dada04d2fd66fb43429ff2c51/" + lat + "," + long + ,false);
    output.innerHTML = "<p>"xhr"</p>"
  }
xhr.send();

我想我必须将getWeather函数放在getPosition函数中,因为我感兴趣的变量(lat,long)都是在本地定义的。当我在脚本中添加getWeather函数时,getPosition不再运行,我不确定如何检查getWeather函数调用是否成功。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

为了使您的调试生活更轻松,您需要学习使用浏览器工具在浏览器中检查您的网页。如果按F12 ,大​​多数浏览器都会显示开发人员工具

您要查找的数据位于 xhr 变量中。根据响应的格式,您可能有xhr.responseText,xhr.responseXml等。您甚至可能有错误代码。

如果您想暂时将xhr对象暴露给全局范围以便于调试,您只需将“ var xhr = ”替换为“ window.xhr =

您应该检查您的xhr对象并熟悉它和可用的开发人员工具。

注意:您的请求是同步的。这被认为是不好的做法,因为它阻塞并且可能导致糟糕的用户体验。

祝你好运!