邮件请求返回变量的奇怪问题

时间:2015-12-24 17:41:43

标签: php variables post

好的我有代码:

function forgotPassword(){
var email = $("#forgotEmail").val();
var atpos = email.indexOf("@");
var dotpos = email.lastIndexOf(".");
if(email == null){
    $("#screenContainer2").fadeIn();
    document.getElementById("warningMessage").innerHTML = "You must fill in your email";
    $("#warningCasing").animate({height: "178px"}, 700);
    return false;
}
if(email == ""){
    $("#screenContainer2").fadeIn();
    document.getElementById("warningMessage").innerHTML = "You must fill in your email";
    $("#warningCasing").animate({height: "178px"}, 700);
    return false;
}
if (atpos< 1 || dotpos<atpos+2 || dotpos+2>=email.length) {
    $("#screenContainer2").fadeIn();
    document.getElementById("warningMessage").innerHTML = "Not a valid e-mail address";
    $("#warningCasing").animate({height: "178px"}, 700);
    return false;
}
$.post("forgotPassword.php", {"email":email}, function(data){
    console.log(data);
    if(data == "success"){
        $("#screenContainer2").fadeIn();
        document.getElementById("warningMessage").innerHTML = "Your request has been recieved, you should recieve an email shortly confirming your password.";
        $("#warningCasing").animate({height: "178px"}, 700);
        $("#forgotPasswordDiv").fadeOut("slow");
        $("#screenContainer").fadeOut("slow");
    }
    if(data == "found"){
        $("#screenContainer2").fadeIn();
        document.getElementById("warningMessage").innerHTML = "There has been an error, please try again.";
        $("#warningCasing").animate({height: "178px"}, 700);
        return false;
    }
    if(data == "failed"){
        console.log("hello");
        $("#screenContainer2").fadeIn();
        document.getElementById("warningMessage").innerHTML = "We could not find an account with that email.";
        $("#warningCasing").animate({height: "178px"}, 700);
        return false;
    }
});
}

我有2个console.log点。第一个告诉我,如果data ==“failed”,第二个应该运行的数据是什么。问题是,即使第一个console.log记录的数据==“失败”,第二个也不记录。

我将最后一个if语句改为else,看看会发生什么,并且它包含的代码会触发。由于某种原因,post请求返回的数据被以下if语句识别。我真的被困在这一个。我知道php文件没问题,在网络选项卡中返回200,第一个console.log证明一切正常。由于某种原因,if语句未被识别。

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

尝试在下面的数据上使用trim,或者在关闭标记后检查你的php文件是否有任何额外的行或空格。有时在PHP代码中,如果在结束的php标记之后有额外的行或额外的空格,这可能发生,因为返回的值可能是“失败\ n”而不是“失败”。

data = $.trim(data)