我正在尝试使用Geolocation API和Dark 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函数调用是否成功。
感谢您的帮助!
答案 0 :(得分:0)
为了使您的调试生活更轻松,您需要学习使用浏览器工具在浏览器中检查您的网页。如果按F12 ,大多数浏览器都会显示开发人员工具。
您要查找的数据位于 xhr 变量中。根据响应的格式,您可能有xhr.responseText,xhr.responseXml等。您甚至可能有错误代码。
如果您想暂时将xhr对象暴露给全局范围以便于调试,您只需将“ var xhr = ”替换为“ window.xhr = ”
您应该检查您的xhr对象并熟悉它和可用的开发人员工具。
注意:您的请求是同步的。这被认为是不好的做法,因为它阻塞并且可能导致糟糕的用户体验。
祝你好运!