是否有可能在请求后在下一个代码行中获得Ajax响应?

时间:2012-04-19 08:15:27

标签: javascript ajax

少年问题,我知道。 但是有没有办法在函数中间调用Ajax,然后使用相同函数中的响应?

没有任何简单的解决方案,但如果你能提出任何复杂的解决方案,那将是非常好的。

Codesample:

function getSomeAjax(){ 
    var params = prepareRequestParams();
    //do some ajax magic here and get ajaxResponseData
    return ajaxResponseData;
}

3 个答案:

答案 0 :(得分:3)

并非没有摆脱Ajax中的A.您可以使用同步请求而不是异步请求(将xhr.open()的第三个参数设置为false),但这会锁定所有JS处理,直到响应返回,这是一个糟糕的主意。 / p>

只需使用回调方法。

答案 1 :(得分:1)

为它使用回调函数:

function test(){
    //ajaxcall here, with a callback function to callback()
}

function callback(){
    // do the thing you want here
}

答案 2 :(得分:1)

您没有提及是否要使用同步。或同步。呼叫。
使用asynch。可能会导致您在尝试返回ajaxReponseData后从服务器获得答案,因此使用synch。打电话是最简单的方法。

我当然要警告你,同步。调用Ajax会导致客户端浏览器在等待应答时冻结,因此如果认为必须使用同步,则应重新考虑设计。版本