【问题标题】:How to call weather API with navigator.geolocation obtained latitude and longitude?navigator.geolocation 获取的经纬度如何调用天气API?
【发布时间】:2015-08-26 17:03:33
【问题描述】:

我正在尝试使用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 函数中,因为我感兴趣的两个变量(纬度、经度)都是在本地定义的。当我在脚本中添加 getWeather 函数时,getPosition 不再运行,我不确定如何检查 getWeather 函数调用是否成功。

感谢您的帮助!

【问题讨论】:

标签: javascript ajax api


【解决方案1】:

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

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

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

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

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

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-22
    • 2011-07-03
    • 2013-04-07
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多