这似乎是一个非常简单的问题,但是我不知道为什么我变得不确定。我正在使用jQuery从PHP脚本(特别是PHP文件回显的字符串)中获取数据。这是代码:

<script type="text/javascript">

    var map1;

    $.get("script.php", function(data)
    {
        map1 = data;
    });

    alert(map1);

</script>


现在,如果我发出alert(map1),它最终将被不确定...为什么会这样呢?我认为通过在$ .get之外声明map1,可以解决问题,但事实并非如此。如果我在$ .get函数中发出alert(map1),它最终会结束,并且该变量包含一个字符串(而不是未定义的字符串)。所以问题是... map1怎么了?以及如何阻止它变得不确定/超出范围/发生了什么事?

提前致谢。

最佳答案

正如@Michael所说,.get调用是异步的,因此您的javascript正在执行此调用,然后继续执行脚本,这就是为什么出现undefined警报框的原因。

最好的选择是进行success调用:

$.get("script.php", function(data)
{
    map1 = data;
})
.success(function() { alert(map1); });

10-06 00:06