正如我所研究的,这个返回数据是“身份验证的”,这意味着if语句应该生效。但是,我不知道的原因是,它直接指向语句的其他部分,即使数据为真,数据也是假的。就像"authenticated"=="authenticated"。它忽略了if部分,我不知道为什么。
function login_admin_user() {
    username = $("#ad-username").val();
    password = $("#ad-password").val();
    $("#button-login").val("Logging in...");
    $.post("ajax-login.php", {
        username: username,
        password: password
    }, function (data) {
        if (data == "authenticated") {
            /*  Execute if authenticated */
            $("#box-login-confirmed").fadeIn("slow", function () {
                $("#button-login").val("Login");
            })
                .delay(1000)
                .fadeOut(400, function () {
                window.location = "home.php";
            });
        } else {
            /*  Execute if invalid login */
            $("#box-login-error").fadeIn("slow", function () {
                $("#button-login").val("Login");
                $("#ad-password").val("");
            })
                .delay(3000)
                .fadeOut(400);
        }
    });
}发布于 2014-06-25 03:37:28
"authenciated"!="authenticated"。你错过了一个t‘。此外,您的响应可能包含空格。所以,在检查之前最好检查一下response.And中的内容--它更好地调整了您的响应。您可以使用jquery装饰函数删除空格。
试着像
if($.trim(data) == "authenticated"){
  //Some code
}
else{
  //Some code
}为什么响应包含空格。你可以在这里找到答案
发布于 2014-07-17 08:24:12
我也遇到过这个问题。从响应数据中使用$.trim()将有助于更改奇怪的空格。
发布于 2014-06-25 03:58:23
$.post方法的默认返回类型是HTML。因此,如果将返回类型设置为JSON,并且在PHP文件中将JSON编码的值返回为“身份验证”。也许能行
https://stackoverflow.com/questions/24399747
复制相似问题