Javascript jQuery AJAX接收的数据在成功处理程序之外为空

Javascript jQuery AJAX接收的数据在成功处理程序之外为空,javascript,jquery,ajax,Javascript,Jquery,Ajax,考虑以下代码示例: var source = null; $.ajax({ [...], success:function(data) { source = data; alert(source); } }); alert(source); 现在:在成功处理程序内部,一切都很好,我从Web服务获得了正确的数据,一切都很好。但是一旦JS离开$.ajax并使用它,变量source就再次为null 告诉我为什么。这一定是一些我不熟悉

考虑以下代码示例:

var source = null;

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

alert(source);
现在:在成功处理程序内部,一切都很好,我从Web服务获得了正确的数据,一切都很好。但是一旦JS离开$.ajax并使用它,变量source就再次为null


告诉我为什么。这一定是一些我不熟悉的JavaScript特定的东西/

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


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

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


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

这可能是因为您忘记了ajax是异步的。
source
变量将是
undefined
,直到
success
回调完成


在代码下面(在
$.ajax()之外)执行
警报(源代码)
几乎可以保证
是未定义的

这可能是因为您忘记了ajax是异步的。
source
变量将是
undefined
,直到
success
回调完成


在代码下执行
警报(源代码)
(在
$.ajax()之外)几乎可以保证
未定义

。@prc322您可以同步,但不同步,在浏览器生成XHR时锁定浏览器。@prc322您可以同步,但不同步,您将在浏览器生成XHR时锁定浏览器。