JQuery .ajax()成功总是触发(即使服务器返回错误代码)

UpT*_*eek 4 ajax jquery

我有一个由JQuery序列化的表单,并通过.ajax()发布到url.

问题是无论服务器是否返回错误代码,总是调用'success:'函数.

实际上,甚至在服务器响应之前就会触发成功(我已经在服务请求的服务器方法上放置了一个断点 - 即使在此方法完成之前也会触发成功).如果服务器返回错误代码(例如状态代码500),JQuery会调用BOTH成功和错误事件!

有什么想法发生了什么?这是我的jquery代码:

$("#a-dialog").dialog({
    autoOpen: false,
    height: 300,
    width: 400,
    modal: true,
    buttons: {
    "Submit": function() {
                $.ajax({
                  type: 'POST',
                  url: theURL,
                  data: $("#a-dialog-form").serialize(),
                  success: alert('ok!') // THIS IS ALWAYS CALLED (IMMEDIATELY)
                });
        },
    },
});
Run Code Online (Sandbox Code Playgroud)

更新:

这对我来说是一个愚蠢的错误!感谢blue112快速指出:)

blu*_*112 7

这是正常的,您必须将其作为回调传递,例如

            $.ajax({
              type: 'POST',
              url: theURL,
              data: $("#a-dialog-form").serialize(),
              success: function(){alert('ok!');} // The function will be called upon success.
            });
Run Code Online (Sandbox Code Playgroud)