这不是我第一次使用ajax等,我想使用jQuery函数$ .getJSON
我写了以下内容:
var newIMG;
function random_img(){
$.getJSON('content/random.php',function (data){
newIMG = data;
})
alert(newIMG.ERROR);
}
但由于某种原因,我在JSON请求发出后无法访问newIMG变量。 以某种方式将它从$ .getJSON函数传递给random_img()函数也没问题(实际上更好)
这真的很奇怪,我无法弄清楚这里有什么问题。
http://i.stack.imgur.com/OShao.jpg firebug控制台的屏幕截图,可以更好地解释它。
先谢谢你们。
答案 0 :(得分:6)
这是因为您在JSON请求返回之前尝试发出警报(getJSON是异步的)所以当它第一次尝试提醒它时,它是未定义的。
将警报移动到回调中:
$.getJSON('content/random.php',function (data){
newIMG = data;
alert(newIMG.ERROR);
});
答案 1 :(得分:5)
您对$ .getJSON的调用是异步的,这意味着在Ajax调用返回值之前将评估alert(newIMG.ERROR)
。您需要在回调中放置警报调用:
var newIMG;
function random_img(){
$.getJSON('content/random.php',function (data){
newIMG = data;
alert(newIMG.ERROR);
});
}