我想为所有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存在时
有可能吗? 或者可能存在另一种方式呢?
答案 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