我如何将一个fail方法调用为ajax回调成功方法?例如,当我从服务器获取某个日期时,我不得不说此数据不正确。为此,我使用以下代码:
Loading.show();
$.post(_api_server+"sign/in.php",opt,function(gets){
try{
if(gets.success){
Toast.show("success!!!","succ");
}else{
// duplicate codes
Loading.hide();
Toast.show("not Ok!!!");
}
}catch(e){
// duplicate codes
Loading.hide();
Toast.show("not Ok!!!");
}
}).fail(function(){
// duplicate codes
Loading.hide();
Toast.show("not Ok!!!");
});
如您所见,我使用重复的代码来做某事。我想使用这样的东西:
Loading.show();
$.post(_api_server+"sign/in.php",opt,function(gets){
try{
if(gets.success){
Toast.show("success!!!","succ");
}else{
this.fail();
}
}catch(e){
this.fail();
}
}).fail(function(){
Loading.hide();
Toast.show("not Ok!!!");
});
我该怎么做?有什么办法吗?
-更新
我有许多使用不同失败方法的ajax,我不能使用其他/外部函数。
答案 0 :(得分:2)
您只需将重复的代码放在一个函数中。如果您将其定义为非匿名函数,或者您通过变量引用了匿名函数,则可以从任何地方调用它。
var failedRequest = function(){
Loading.hide();
Toast.show("not Ok!!!");
};
Loading.show();
$.post(_api_server+"sign/in.php",opt,function(gets){
try{
if(gets.success){
Toast.show("success!!!","succ");
}else{
failedRequest();
}
}catch(e){
failedRequest();
}
}).fail(failedRequest);