我有一个读取一些JSON数据的脚本:

var tempJson;
$.post("scripts/getJSON.php", function(data) {
     tempJson = data;
}, 'json');
alert("");  //First alert
alert("That: " + tempJson);  //Second alert


当我包括第一个警报行时,第二个警报给了我一个[Object object]预期的效果。当我省略第一个警报行时,我在第二个警报中收到未定义的消息。为什么?

最佳答案

因为它是异步的,并且在您关闭警报时,ajax已经完成,并且数据已返回并分配给变量。

你应该

var tempJson;
$.post("scripts/getJSON.php", function(data) {
     tempJson = data;
     alert(tempJson); // or whatever you want to do with the data should go here..
}, 'json');

09-11 15:11