Javascript 400使用开放式天气图api地理位置调用时的错误请求?

Javascript 400使用开放式天气图api地理位置调用时的错误请求?,javascript,Javascript,我首先使用此代码获取我的地理位置: if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { long = position.coords.longitude; lat = position.coords.latitude; $("#data").html("latitude: " + lat + "<br>longitude: " + long);

我首先使用此代码获取我的地理位置:

if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
  long = position.coords.longitude;
  lat = position.coords.latitude;
  $("#data").html("latitude: " + lat + "<br>longitude: " + long);
  });
}

它返回代码错误400,请求错误。

我认为问题在于您没有将变量lat和long正确地连接到URL中。使用
“+lat+”
而不是像这样使用
{+lat+}
:http://api.openweathermap.org/data/2.5/weather?lat=“+lat+”&lon=“+long+”&appid=a85717f57b6bd30e011747de59dc3a60”这对我有用


另一个潜在问题可能是范围;如果
var-api
在if语句之外,它将不知道变量
lat和long
是什么。解决这个问题的一种方法是全局声明这些变量(在if语句之外)。或者在语句中移动
var-api

您是否进行过任何调试?我的意思是,你没有在一个字符串中传递任何关于URL的信息(例如lat)。我不知道,我刚刚开始学习使用api调用。在Stackoverlfow提问之前,尝试做更多的研究。提出问题。得到答案。不要闲聊。api字符串中有变量,api(URL)特别告诉您lat变量是非浮点变量,这意味着在您传递单词“lat”时它需要一个浮点数。嘿,我尝试使用“+lat+”将变量连接到URL中。我还在全球范围内声明了api、long和lat。但是我仍然收到错误400错误的请求。嘿,看看这个,看看控制台日志,告诉我那里的链接是否适合你:嘿,我解决了它!原来我用引号前后不一致!我对+lat+和+long+使用了单引号!
var api = "http://api.openweathermap.org/data/2.5/weather?lat={+lat+}&lon={+long+}&appid=a85717f57b6bd30e011747de59dc3a60"