我无法将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;
}
答案 0 :(得分:2)
问题是$.post
调用是异步的。发送帖子后,.html()行正在执行,但在返回帖子响应之前不会执行lp = data.lp
行。
所以这项任务工作正常,但发生得太晚了。要使其工作,请将.html()行移动到帖子的成功函数中。