考虑以下代码示例:
var source = null;
$.ajax({
[...],
success:function(data)
{
source = data;
alert(source);
}
});
alert(source);
现在:在成功处理程序内部,一切都很好,我从Web服务获得正确的数据,一切都很好。但是只要JS离开$ .ajax并完成它,变量源就会再次为null。
告诉我原因。它必须是一些我不熟悉的JavaScript特定的东西。 :/
答案 0 :(得分:4)
可能是因为你忘了AJAX是异步的。在source
回调完成之前,undefined
变量将为success
。
在该代码下方(alert(source)
之外)执行$.ajax()
几乎可以保证为undefined
。
答案 1 :(得分:0)
那么,你确定在触发ajax调用之外的警报之前调用了成功回调吗?
ajax调用是异步的,并立即返回。