我使用以下ajax函数来调用webservice,如果我收到错误,我希望它能触发一个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编写的函数就可以运行。
非常欢迎提供建议和/或指导 - 谢谢。
答案 0 :(得分:0)
error
回调。如果您使用200
回复并在回复中收到错误消息,则会调用success
回调。可悲的是,jQuery并不那么聪明。
相反,如果出现错误消息,您可以返回错误代码或检入success
回调。
答案 1 :(得分:0)
与提到的@SomeKittens一样,error
仅在服务器响应错误代码或根本不回复时被调用。
但是,如果出现问题,您可以在服务器端返回一些内容,例如表单验证不成功,用户需要更正某些内容。
例如:
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
}
}