假设我定义了一些全局Ajax事件处理程序(ajaxStart,ajaxStop和ajaxError)。通常,我对此表示满意,但对于一个请求,我想禁用ajaxError处理程序,但仍照常运行ajaxStart和ajaxStop处理程序。在jQuery的AJAX功能的文件中提到,可以设置为false,并传递到$就功能禁用所有全局AJAX事件处理程序的“全球性”的参数,但他们没有提及任何办法只能禁用一些全球处理器。
我可以通过对传递给ajaxError函数的ajaxSettings对象的“ url”属性进行测试,来防止ajaxError处理程序,但这似乎有些笨拙。这里是否有人知道一种禁用ajaxError函数运行的方法,这种方法对于查看$ .ajax函数调用位置的人来说是显而易见的?
如果有人想看它,我可以提供一个简单的例子。
这是可能的,而且并不难。
您只需要设置全局错误处理程序(.ajaxError)即可接收jQuery可以提供给它的一些参数:
.ajaxError
$("div.log").ajaxError(function(evt, xhr, settings) { if(settings.suppressErrors) { return; } // Normal processing });
此后,您可以将所添加suppressErrors: true的任何AJAX请求添加到设置中,如果失败,则错误处理程序将返回而不执行通常的操作。
suppressErrors: true
看到它在行动 。