在ajax错误上执行javascript函数

我使用以下ajax函数来调用web服务,如果我收到错误,我希望它能触发一个javascript函数userCreate()

$.ajax({ type:"POST", beforeSend: function (request) { request.setRequestHeader("X-DreamFactory-Application-Name", "snapcentral"); request.setRequestHeader("X-DreamFactory-Session-Token", sessID.dream); }, url: url, data: '{"username":"' + userStats.loginID + '","lithid":"' + userStats.userID + '"}', success: function(data) { dbData = data; console.log('createUsers Executed sucessfully'); }, error: function (request, status, error) { console.log("createUser: " + request.responseText); createUser(); } }); 

除了不触发createUser()函数的“错误”部分之外,一切都按预期工作。 我从根本上做了什么错误,如何在错误时执行查询以执行函数。

我为createUser编写的函数在我独立调用时有效。

建议和/或指导将是最受欢迎的 – 谢谢。

只有在服务器响应错误代码或根本没有响应时,才会调用jQuery的error回调。 如果您在响应中回复200并显示错误消息,则将调用success回调。 可悲的是,jQuery并不那么聪明。

相反,如果出现错误消息,您可以返回错误代码或检入success回调。

与提到的@SomeKittens一样,只有在服务器响应错误代码或根本没有回复时才会调用错误。

但是,如果出现问题,您可以在服务器端返回一些内容,例如表单validation不成功,并且用户需要更正某些内容。

例如:

 if($_POST['first_last'] === ""){ echo "Name is not right here."; return false; } 

然后,您可以使用jQuery上的success来处理:

 success: function(data) { if(data == "Name is not right here."){ alert(data); return false; } else{ // do stuff } }