Ajax响应与我认为的应该不相等

时间:2014-03-14 05:41:08

标签: javascript php ajax

我试图调用displayUsers函数,如果响应等于" loggedIn " (响应来自php中的echo语句,用于ajax请求)。它总是直接跳到else语句,并且不会执行displayUsers()。但是,当我发出警报响应时,它会显示loggedIn。

这是我的代码:

   function ajaxRequest(url, method, data, asynch, responseHandler) {
    var request = new XMLHttpRequest();
    request.open(method, url, asynch);

    if (method == "POST") {
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    }
    request.onreadystatechange = function() {
        if (request.readyState == 4) {
            if (request.status == 200) {
                responseHandler(request.responseText);
            }
        }
    }

    request.send(data);
}

//loginCheck
    function loginCheck() {
        var username = document.getElementById("usernameLogin").value;
        var password = document.getElementById("passwordLogin").value;
        var data="usernameLoginAttempt="+username+"&passwordLoginAttempt="+password;
        ajaxRequest("../PHP/CODE/login_check.php", "POST", data, true, loginCheckResponse);
    }

    function loginCheckResponse(response) {
    //check response, if it is "loggedIn" then call show users function
    alert(response);
    if (response == "loggedIn") {
        displayUsers();
    } else {
        alert("Login Failed. Please try again.")

    }

}

2 个答案:

答案 0 :(得分:4)

// response is an object which you get from ajex.
// You have not written how you call loginCheckResponse()
// call like loginCheckResponse(response.<variable which you return from service page>)
function loginCheckResponse(response)
{
    //check response, if it is "loggedIn" then call show users function
    alert(response);
    if (response == "loggedIn") {
        displayUsers();
    } else {
        alert("Login Failed. Please try again.")
    }

}

答案 1 :(得分:1)

将我的代码更改为:

    //logged in
function loginCheckResponse(response) {

    if(response.trim()=="loggedIn"){
        displayUsers();
    }
    else{
        alert("Login Failed. Please try again.");
    }

}

它现在有效。非常感谢帮助人们。