我希望能够使用location动态生成我的API查询。
如果我在console.log中输出我的地理位置并将其复制到我的ajax API URL,它就可以正常工作。
但是,当我尝试将带有字符串的变量传递给URL时,它就会停止工作。
因此,当我删除ajax URL并将其替换为包含相同URL的geoAddress变量时,它将停止工作。
这是codepen http://codepen.io/Middi/pen/peLMBQ
这是我的代码。
findFirst()
答案 0 :(得分:1)
错误到达您的代码,因为AJAX调用会在不等待IF条件的情况下立即触发。这就是为什么当Ajax调用它时,它会在变量geoAddress
尝试这种方式:
var geoAddress;
$(document).ready(function ($) {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
geoAddress = "http://api.openweathermap.org/data/2.5/weather?lat=" + position.coords.latitude + "&lon=" + position.coords.longitude + "&units=metric&appid=6776250c9f90718881dbecfc4c7c5319";
$.ajax({
url: geoAddress,
success: function (parsed_json) {
var location = parsed_json.name;
var country = parsed_json.sys.country;
var temp_c = Math.round(parsed_json.main.temp);
var description = parsed_json.weather[0].description;
var icon = parsed_json.weather[0].icon;
// Add to Dom
$('.weather-place').html(icon + "<p>" + location + ", " + country + "</p><p>" + temp_c + "°C</p>" + "</p><p>" + description).fadeIn(400);
}
});
});
}
});