jQuery:在成功/错误中使用延迟对象(ajaxSetup选项)

时间:2012-05-28 08:21:37

标签: javascript jquery jquery-deferred

我想为所有AJAX请求设置全局行为, 有时我需要中断队列 像这样

$.ajaxSetup({
    success: function(data, textStatus, jqXHR) {
        if ( data.error ) { jqXHR.reject(); }
    }
});
// later
$.ajax({ some: option }).done( function(html) { do_something(html); } );

这里我想完成(不要用函数调用(html))  当data.error存在时

有可能吗? 或者可能存在另一种方式呢?

1 个答案:

答案 0 :(得分:2)

您无法直接解析jqXHR。

jqXHR实现了Promise接口,该接口可用于获取状态或添加回调但不能用于更改状态。

参考http://api.jquery.com/jQuery.ajax/#jqXHR

您是否尝试过$ .ajaxSetup(success:defaultHandler})?但只有在原始选项中提供处理程序时,这才有效。喜欢:$ .ajax({url:'someurl',success:someHandler});

有关更多提示,请参阅以下内容: http://forum.jquery.com/topic/stop-a-deferred-callback-queue-in-progress