0

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

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

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

可能吗 ?或者也许存在另一种方式?

4

1 回答 1

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

于 2012-05-30T22:24:31.147 回答