如何在成功回调函数中触发ajax错误回调函数?

7
我正在寻找一种在成功回调函数中触发ajax错误的方法。我尝试在下面的代码中解释了我的问题:
$.ajax({
url: requestURL,
data: postData,
type: 'post',
success: function(response){
    if(response.Success){
        // do something
    }else{
        // request workflow fails in this case,
        // i have to trigger this ajax request's error callback
    }
},
error: function(){
    // do something on error case
},
dataType: 'json'
});
2个回答

10
var errorhandler = function(xhr, textStatus, error){
    // do something on error case
};

$.ajax({
   url: requestURL,
   data: postData,
   type: 'post',
   success: function(response){
       if(response.Success){
           // do something
       }else{
           errorhandler();
       }
   },
   error: errorhandler,
   dataType: 'json'
   });

确保你这样做: errorhandler.apply(this,arguments); 以确保作用域和参数仍然存在(它们不会完全相同,但足够好)。 - balupton
@balupton:总的来说,我同意。但在这种特殊情况下,作用域并不重要。没有必要在错误处理程序中访问 this - jAndy
是的,我正在使用你建议的方法进行操作,但例如,我已经使用$.ajaxSetup设置了全局ajax错误回调函数,并且我想要触发该回调函数。实际上,我正在寻找一种调用$ .ajax调用中的回调错误情况的方法。但是,是的,这是最简单的解决方案。 - Mehmet Fatih Yıldız

0
你可以发送适当的HTTP状态码,这样错误回调就会自动触发。 4xx 错误范围适用于客户端错误,可能是个不错的选择。大多数API使用HTTP状态来指示错误,并像你正在做的那样使用额外的JSON/XML数据。可以参考Twitter的响应代码作为示例。

我无法接触服务器端环境,正在寻找客户端,并寻找在成功情况下调用内部的方法。 - Mehmet Fatih Yıldız

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接