1

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

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

divtest1是正确的字段,但不是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;
}
4

1 回答 1

2

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

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

于 2012-04-28T12:32:40.423 回答