2011-12-26 33 views
1

这里是最初的代码:jQuery的阿贾克斯获得导致

var res = null; 
$.post('test.php', 'q=testdata', function(response) { 
    res = response; 
}); 

我需要在我的代码,或Ajax调用后立即在某些时候使用res。我尝试这样做:

var res = null; 
$.post('test.php', 'q=testdata', function(response) { 
    res = response; 
    alert('Note 1: '+res); /* Returned exactly what I wanted */ 
}); 
alert('Note 2: '+res); /* Returned null. I need to use res here. How? */ 

怎么可能使用res保持Ajax调用后所需的值?

回答

2

您的代码发出异步Ajax请求,而第二警报同步执行。这意味着执行(顺序)第二次警报时,响应可能不可用。

试着把它放在你的$.post后面:$.ajaxSetup({async:false})

它会强制警报以它们出现在代码中的顺序触发。如果异步电话是您想要的,那么我建议您遵循Sudhir的建议。

1

威尔东西这种帮助你:

 
var res = null; 
$.post('test.php', 'q=testdata', function(response) { 
    res = response; 
    doSomething(res); 
}); 

function doSomething(respo) { 
    //do someting with response 
}