如何在函数外部的函数中使用变量。 console.log(响应)显示内容是从php获取的。警报(lng)显示未定义。为什么?这个脚本可能会出现什么问题。我已经有一段时间了。
下面是脚本。
var lat;
var lng ;
$.ajax({
type: 'GET',
url: 'getlocation.php',
data: 'param=no' ,
dataType: 'JSON',
success: function (response) {
console.log(response);
lat = response.latitude;
lng = response.latitude;
},
error: function (response){
alert (response);
}
});
alert( lng);
答案 0 :(得分:3)
因为代码运行到行lng
时未设置变量alert(lng)
。
Ajax调用是异步的。这意味着,JS引擎进入流程:
$.ajax...
)(此时,由于网络操作很慢,因此JS引擎选择继续执行以下行。它在响应完成后返回。)
alert(lng)
。此时,它仍然是undefined
。function(response)...
。回调函数内的警报将获得您想要的结果。