这不是我第一次使用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控制台的屏幕截图,可能会更好地解释。

在此先感谢大家。

最佳答案

这是因为您正在尝试在JSON请求返回之前发出警报(getJSON是异步的),因此当它第一次尝试发出警报时,它是未定义的。

这样将警报移到回调中:

$.getJSON('content/random.php',function (data){
  newIMG = data;
  alert(newIMG.ERROR);
});

09-18 07:02