我在设置一些全局变量以在我正在编写的脚本之外使用时遇到问题。我相信我设置了正确的它们,但它们似乎并不合作。我的控制台输出始终是一个空字符串,因为它们应该在演示网页的主要调用函数中定义。所有其他数据似乎都工作正常,如果我打印出来而不将其设置为变量,那么它工作正常。但是,我需要变量,以便我可以在此脚本之外调用它们。有什么想法吗?
var latitude = "", longitude = "";
$(document).ready(function() {
$.ajax({
dataType: "json",
url:"http://api.geonames.org/searchJSON?q=Atlanta&maxRows=10&username=Demo"
}).then(function(data){
console.log(data);
latitude = data.geonames[0].lat; <---Variables are supposed to be set here
longitude = data.geonames[0].lng; <----Variables are supposed to be set here
$('.map-Latitude').append(data.geonames[0].lat); <----Works well
$('.map-Longitude').append(data.geonames[0].lng); <----Works Well
});
});
console.log("Latitude is: " + latitude); <---- prints out an empty string
console.log("Longitude is: " + longitude); <---- prints out an empty string
我似乎无法让它工作,我觉得我正在正确设置变量,但它们似乎工作得不好。谢谢!
您的$.ajax()
调用是异步的。 在浏览器收到 HTTP 响应之前,调用的结果不可用。
将console.log()
调用置于.then()
函数内。