Javascript jqueryif-Else语句从未执行

Javascript jqueryif-Else语句从未执行,javascript,jquery,ajax,Javascript,Jquery,Ajax,我使用一个简单的if-else语句来检查POST表单的响应 这很奇怪:我可以检查错误形式的响应。使用elseif:或else:完全不起作用。即使响应是有效的 当前代码: post_data = { 'someData': someData } // Ajax post data to server $.post('register.php', post_data, function(response) { if (response.type == 'error') {

我使用一个简单的if-else语句来检查POST表单的响应

这很奇怪:我可以检查错误形式的响应。使用elseif:或else:完全不起作用。即使响应是有效的

当前代码:

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”时,执行error语句

然而,当回答是:成功/完成/清除/失败等(无论我尝试什么)时,什么都不会发生


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

实际上这不是您所想的

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

例如,尝试以下方法:

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对于不同的jQuery版本有不同的处理函数。因此最好使用$.ajax({type:“post”,url:url,data:data,success:success,dataType:dataType}),console.log(response.type)包含哪些内容?试试承诺:
$.post().done().fail()
$.ajax({type:“post”,url:url,data:data,success:success,dataType:dataType});
console.log不返回任何值?但是在网络中,我可以看到返回的数据?还尝试在post内部运行console.log(“log START”);但是当收到“error”时从响应来看,所有内容都已记录并正常工作。可能是您正在调用的服务以某种方式混淆了HTTP状态响应。如果成功,应返回状态200 OK,还可能返回另一个值(4xx或5xx)如果失败。可能是因为交换了。或者可能是因为其他原因,它返回4xx或5xx。只有在收到200的情况下,$.post()才会执行该函数。我会尝试返回(Y)只是快速阅读有关内容。可能与我的PHP有关?不过,谢谢。我会接受这个答案,因为它解决了OP.(Y)的实际问题