jQuery AJAX在success-handler之外接收的数据为null

时间:2011-03-22 13:14:56

标签: javascript jquery ajax

考虑以下代码示例:

var source = null;

$.ajax({
    [...],
    success:function(data)
    {
        source = data;
        alert(source);
    }
});

alert(source);

现在:在成功处理程序内部,一切都很好,我从Web服务获得正确的数据,一切都很好。但是只要JS离开$ .ajax并完成它,变量源就会再次为null。

告诉我原因。它必须是一些我不熟悉的JavaScript特定的东西。 :/

2 个答案:

答案 0 :(得分:4)

可能是因为你忘了AJAX是异步的。在source回调完成之前,undefined变量将为success

在该代码下方(alert(source)之外)执行$.ajax()几乎可以保证为undefined

答案 1 :(得分:0)

那么,你确定在触发ajax调用之外的警报之前调用了成功回调吗?

ajax调用是异步的,并立即返回。