我正在从谷歌的网络服务获取经度和纬度值,并将这些值传递给打开天气图 api 以获取温度值。下面的代码
function getWeatherData(latitude, longitude) {
var temperature = 0;
var url = "http://api.openweathermap.org/data/2.5/weather?lat=";
url = url + latitude;
url = url + "&lon=";
url = url + longitude;
url = url + "&cnt=1";
$
.ajax({
type : "POST",
dataType : "jsonp",
url : url + "&callback=?",
async : false,
success : function(data) {
temperature = data.list[0].main.temp ;
alert (temperature);
},
error : function(errorData) {
alert("Error while getting weather data :: "+errorData.status);
}
});
return temperature;
所以对于这个网址
http://api.openweathermap.org/data/2.1/find/city?lat=22.572646&lon=88.36389500000001&cnt=1
在浏览器中正确获取以下 JSON 响应
{
"message": 0.016,
"cod": "200",
"calctime": "",
"cnt": 1,
"list": [{
"id": 1275004,
"name": "Kolkata",
"coord": {
"lon": 88.36972,
"lat": 22.569719
},
"distance": 0.999,
"main": {
"temp": 301.15,
"pressure": 998,
"humidity": 88,
"temp_min": 301.15,
"temp_max": 301.15
},
"dt": 1371217800,
"wind": {
"speed": 3.1,
"deg": 150
},
"clouds": {
"all": 40
},
"weather": [{
"id": 721,
"main": "Haze",
"description": "haze",
"icon": "50n"
}]
}]
}
但是在尝试使用 jQuery 的 ajax 进行相同操作时,除了将值作为 JSONP 获取之外,我别无选择,无法将其作为 JSON
由于无法获得 JSON 响应,因此无法使调用异步。
我需要使异步为假。因此,每次都将值温度设置为 0,并且无法获得我从 ajax 调用中获得的实际温度值
请帮忙