返回介绍

.ajaxError()

发布于 2017-07-27 字数2740 浏览 964 评论 0

所属分类:Ajax > 全局 Ajax 事件处理器

.ajaxError( handler(event, jqXHR, ajaxSettings, thrownError) )

Ajax 请求出错时注册一个回调处理函数,这是一个 Ajax Event。返回一个 jQuery 对象。

  • .ajaxError( handler(event, jqXHR, ajaxSettings, thrownError) ) 1.0+
    • handler(event, jqXHR, ajaxSettings, thrownError)
      类型: Function()
      被调用的函数。

每当一个 Ajax 请求出错时,jQuery 就会触发 ajaxError 事件,在这个时间点所有处理函数会使用 .ajaxError() 方法注册并执行。注意:这里的 handler 处理器调用跨域的脚本和跨域的 JSONP 请求。

观察这种方法,建立一个基本的 Ajax 加载请求:

<button class="trigger">Trigger</button>
<div class="result"></div>
<div class="log"></div>

在document上绑定事件处理器:

$(document).ajaxError(function() {
    $( "div.log" ).text( "Triggered ajaxError handler." );
});

现在,我们可以使用任何的 jQuery 方法构建一个 Ajax 请求:

$( "button.trigger" ).click(function() {
    $( "div.result" ).load( "ajax/missing.html" );
});

当用户点击按钮并且 Ajax 请求失败,因为所请求的文件不存在,这个信息就会显示。

但是从 jQuery 1.8 开始 .ajaxComplete() 方法只能绑定到 document 元素.

注意:这段在官网的原文中已经被删除,因为 .ajaxComplete() 是作为一个 jQuery 对象实例方法去执行的,回调函数中,我们可以用 this 关键字作为指定的元素。

无论哪一个 Ajax 请求被完成,所有 ajaxError 处理器都将被执行。如果我们必须区分不同的请求,我们可以使参数传递给这个处理器。

他是通过事件对象、 XMLHttpRequest 对象和设置对象中使用的请求,每次ajaxError 处理器执行,它传递事件对象,jqXHR 对象(在 jQuery 1.5之前是XHR对象),和用来创建请求的设置(Settings)对象。如果请求失败,因为JavaScript 抛出一个异常,并且作为第四个参数的异常对象被传递给处理函数。

举个例子,我们能限制我们的回调到只处理事件处理某一特定的 URL:

$( document ).ajaxError(function(event, jqxhr, settings, exception) {
  if ( settings.url == "ajax/missing.html" ) {
    $( "div.log" ).text( "Triggered ajaxError handler." );
  }
});

其他注意事项:

  • 如果 global 选项设置为 false,调用 $.ajax()$.ajaxError() 方法将不会被触发。

例子

当Ajax请求失败后显示一个信息.

$(document).ajaxError(function(event, request, settings) {
    $( "#msg" ).append( "<li>Error requesting page " + settings.url + "</li>" );
});

您暂时不能评论!

管理员开启了需要登录才能够评论,你可以免费注册一个本站的账号。

还没有评论!

目前还没有任何评论,快来抢沙发吧!