JQuery如果Else语句从未执行过

时间:2016-04-08 07:52:12

标签: javascript jquery ajax

我正在使用一个简单的if else语句来检查来自POST表单的响应。

这很奇怪:我可以检查错误形式的响应。使用elseif:或者:只做绝对没有。即使回复有效。

当前代码:

post_data = {
    'someData': someData
}

// Ajax post data to server
$.post('register.php', post_data, function(response) {

    if (response.type == 'error') {
        if (response.errorType == 'something') {
            $("#someThing").addClass('has-error');
        }
    } else {
        window.location.reload(true);
    }

}, 'json');

这太奇怪了。我试图插入警报来真正检查else语句是否在后台运行。

当响应为:“error”时,执行错误语句。

然而,当响应是:成功/完成/清除/失败等(无论我尝试什么)都没有任何反应。

我在控制台中收到响应 - 但是JQuery没有运行} else {...语句。

1 个答案:

答案 0 :(得分:1)

实际上它不是你的想法。

该功能仅在成功时调用。对于错误处理,您必须链接另一个函数

例如试试这个:

post_data = {   
            'someData':someData
        }

        // Ajax post data to server
        $.post('register.php', post_data).done(function (response) {
            // This is your success function
             window.location.reload(true);
        })
       .fail(function (xhr, textStatus, errorThrown) {
            console.log("Post error: " + errorThrown);
            $("#someThing").addClass('has-error');
        });

我希望这可以帮助你理解这种奇怪的行为:P

jQuery documentation对不同的jQuery版本有不同的处理函数。所以最好使用$ .ajax