我调查的这个返回数据是“已验证”,这意味着if语句应该生效。但是,由于我不知道的原因,它直接转到语句的else部分,即使它是真的,也会使数据失效。像"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);
}
});
}
答案 0 :(得分:1)
"authenciated"!="authenticated"
。你错过了一个'。也可能你的回复可能包含空格。因此,请检查响应中的内容。最好在进行检查之前修剪响应。您可以使用jquery trim函数删除空格。
尝试
if($.trim(data) == "authenticated"){
//Some code
}
else{
//Some code
}
为什么响应包含空格。你可以在这里找到答案
答案 1 :(得分:1)
我也遇到过这个问题。使用响应数据中的$ .trim()可以帮助改变奇怪的空格。
答案 2 :(得分:0)
$ .post方法的默认返回类型是HTML。因此,如果您将返回类型设置为JSON,并在PHP文件中将JSON ENCODED值返回为“已验证”...可能有效