将AJAX存储返回变量

时间:2012-04-28 12:28:54

标签: jquery ajax

我无法将Ajax响应存储到变量中。 到目前为止,这是我的代码:

function bbl(phrase) {
    var lp;
    $.post(
        'babelJS.php',
        {"phrase" : phrase},
        function (data){
            lp = data.lp;
            $("#test1").html(lp);
        },
        'json'
    );
    $("#test2").html(lp);
}

div test1是正确的字段,但不是test2 ...为什么lp部分之后$.post无法生存?

谢谢!

更新:我还希望bbl()返回lp ...

更新2

我对以下内容没有更多的好处,这些内容来自常见问题解答,其链接位于此帖子的第一条评论中。

function getBbl(phrase,callback) {
    $.post(
        'babelJS.php',
        {"phrase" : phrase},
        function (data){
            callback(data.locphrase);
        },
        'json'
    );
}

function bbl(phrase) {
    var lp
    getBbl(phrase,function(locphrase){
        lp = locphrase;
    });
    return lp;
}

1 个答案:

答案 0 :(得分:2)

问题是$.post调用是异步的。发送帖子后,.html()行正在执行,但在返回帖子响应之前不会执行lp = data.lp行。

所以这项任务工作正常,但发生得太晚了。要使其工作,请将.html()行移动到帖子的成功函数中。