gpt4 book ai didi

javascript - 使用 ajax 上下文不能解决范围问题

转载 作者:行者123 更新时间:2023-11-29 18:59:06 25 4
gpt4 key购买 nike

我无法使 ajax 上下文工作:-

var msgdata = "";
$.ajax({
type: "POST",
url: "players/" + joinplayer + "/joingame.php",
data: {
userID: "<?php echo $_SESSION['username']; ?>",
gameinfo: JSON.stringify(<?php echo json_encode($_SESSION['profile']['user'], true); ?>)
},
context: msgdata,
success: function(data) {
msgdata = data;
$.ajax({
type: "POST",
url: "renamejoin.php",
data: {
userID: "<?php echo $_SESSION['username']; ?>",
joinID: joinplayer
},
context: msgdata,
success: function(data) {
if (data == "" && msgdata != "") {
// sucessfully joined a player's game
} else {
alert(data);
}
},
error: function() {
alert(joinplayer + "'s game is no longer available.");
}
});
},
error: function() {
alert(joinplayer + "'s game is no longer available.");
}
});
if (msgdata == "");
// start showing games awaiting players again
gamefeedrefresh;
timer = window.setInterval(gamefeedrefresh, 2500);
}

msgdata 在此最终 if 语句中始终为 ""。问题似乎是一个范围问题,但即使是一个或两个上下文语句也没有区别。

是否可以解决此范围问题?感谢所有建议。

最佳答案

Ajax 请求是异步的,这意味着程序的其余部分将在请求返回之前执行。如果要在请求完成后运行代码,请将其移动到 success 函数体中。

您可能还想看看 Promise .

关于javascript - 使用 ajax 上下文不能解决范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47861094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com