Javascript ajax中的响应值重叠

Javascript ajax中的响应值重叠,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我正在制作一个需要多个Ajax请求的应用程序。但问题是,对于这两个Ajax请求,我得到的响应值是相同的。 在每个请求中都需要一个名为activityCode的数据,但这样做的话,即使在heartbeat函数中,我也会不断得到ScoreBoardResponse的值。如果我将activityCode中的任何一个重命名为任何其他名称,问题就会得到解决。但为什么会发生这种情况 以下是代码: JS var allJoined = false; var roomName = $('#room').

我正在制作一个需要多个Ajax请求的应用程序。但问题是,对于这两个Ajax请求,我得到的响应值是相同的。 在每个请求中都需要一个名为
activityCode
的数据,但这样做的话,即使在
heartbeat函数中,我也会不断得到
ScoreBoardResponse
的值。如果我将
activityCode
中的任何一个重命名为任何其他名称,问题就会得到解决。但为什么会发生这种情况

以下是代码:

JS

var allJoined = false;
    var roomName = $('#room').val();
    var playerNameSet = function () {
        if(!allJoined) {
            $.ajax({
                type: "POST",
                url: "gameEngine/app.php",
                data: {
                    activityCode: 1,
                    room: roomName
                },
                success: function (ScoreBoardResponse) {
                    var obj = JSON.parse(ScoreBoardResponse);
                    var count = Object.keys(obj).length;
                    if (count == 1) {
                        playerOne_name.html(obj.p1_name);
                        setTimeout(playerNameSet, 3000);
                    }
                    else if (count == 2) {
                        playerOne_name.html(obj.p1_name);
                        playerTwo_name.html(obj.p2_name);
                        allJoined = true;
                        //Start the heartbeat to check if the other player is alive
                        setTimeout(startHeartbeat, 15000);
                        clearTimeout(playerNameSet);
                    }
                },
                error: function (error) {
                    console.log(error);
                }
            });
        }
    };
    setTimeout(playerNameSet, 3000);

function startHeartbeat() {
        $.ajax({
            type: "POST",
            url: "gameEngine/app.php",
            data: {
                activityCode: 2,
                room: roomName
            },
            success: function(beat) {
                console.log(beat);
            },
            error: function(error) {
                console.log(error);
            }
        });
        setTimeout(startHeartbeat, 15000);
    }
PHP

.
.
.
elseif (isset($_POST['activityCode']) == 1 && isset($_POST['room'])) {
    $response = $gameHandler->getPlayerOrder($_POST['room']);

    echo $response;
}
elseif (isset($_POST['activityCode']) == 2 && isset($_POST['room'])) {
    echo "request reached here";
}
如果POST变量存在或不存在,则返回
true
false
。它不返回变量值,您需要在您的条件中添加另一个检查:

elseif (isset($_POST['activityCode']) && $_POST['activityCode'] == 1 && isset($_POST['room'])) {
    $response = $gameHandler->getPlayerOrder($_POST['room']);

    echo $response;
}
elseif (isset($_POST['activityCode']) && $_POST['activityCode'] == 2 && isset($_POST['room'])) {
    echo "request reached here";
}