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时锁定浏览器。