AJax忽略了回应

时间:2014-03-09 21:03:52

标签: php jquery ajax if-statement comparison

我在我的网站上运行一些ajax来处理表单提交,但是,出于某种原因,每当我检查PHP的响应时,它都会忽略我的处理并直接进入底层。

//Login Form Submission
$('form.loginform').on('submit', function (e) {
e.preventDefault();0
//Grab Data
var that = $(this),
    url = that.attr('action'),
    method = that.attr('method'),
    data = {};

that.find('[name]').each(function(index, value) {
    var that = $(this),
        name = that.attr('name'),
        value = that.val();
    data[name] = value;

});

$.ajax({
    url: url,
    type: method,
    data: data,
    success: function (response) {
        console.log("Ajax Response: \"" + response + "\"");
        console.log(typeof response);
        if(response === "0"){
            document.getElementById('error_message').innerHTML = "Incorrect password";
            document.getElementById('error_message').style.color = 'red';
            document.getElementById('error_message').style.borderColor = 'red';
        }else if(response === "1"){
            window.location.href = "./index.php";
        }else if(response === "2"){
            document.getElementById('error_message').innerHTML = "Please fill all required fields.";
            document.getElementById('error_message').style.color = 'red';
        } else if(response === "3"){
            document.getElementById('error_message').innerHTML = "That username does not exist. Please try again.";
            document.getElementById('error_message').style.color = 'red';
            document.getElementById('error_message').style.borderColor = 'red';
        } else if(response === "4"){
            document.getElementById('error_message').innerHTML = "Your account has been banned on this website. Please contact an administrator.";
            document.getElementById('error_message').style.color = 'red';
            document.getElementById('error_message').style.borderColor = 'red';
        } else {
            document.getElementById('error_message').innerHTML = "Error while logging in. Please try again.<br />If you continue to recieve this error, Please contact an administrator.";
            document.getElementById('error_message').style.color = 'red';
            document.getElementById('error_message').style.borderColor = 'red';
        }
        //This is the output from the php script
   }
});

return false;
});

这是我当前的代码,我得到的输出是

Ajax Response: "1"
String

然而,它直接进入

'Error while logging in, Please contact an Administrator'

我的问题是,为什么它忽略了'else'上方的'if'语句,即使响应是'1'?

1 个答案:

答案 0 :(得分:3)

尝试 response.trim() == "1"

因为log显示了它的1和String所以可能会出现一些空白区域。