400 使用开放天气地图 API 地理位置调用时请求错误?



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

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

然后我使用地理位置调用 API:

var api = "http://api.openweathermap.org/data/2.5/weather?lat={+lat+}&lon={+long+}&appid=a85717f57b6bd30e011747de59dc3a60"

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

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

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

最新更新