# .ajaxSuccess()

所属分类：Ajax > 全局 Ajax 事件处理器 英文文档：.ajaxSuccess()

## .ajaxSuccess( handler(event, XMLHttpRequest, ajaxOptions) )返回: jQuery

描述: 绑定一个函数当 Ajax 请求成功完成时执行。 这是一个Ajax Event.

- #### 添加的版本: 1.0.ajaxSuccess( handler(event, XMLHttpRequest, ajaxOptions) )

  - handler(event, XMLHttpRequest, ajaxOptions)
    类型: Function()
    被调用的函数。

每当一个Ajax请求成功完成，jQuery就会触发`ajaxSuccess`事件，在这个时间点所有处理函数都会使用`.ajaxSuccess()`方法注册并执行。

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

1 2 3 |
    <div class="trigger">Trigger</div><div class="result"></div><div class="log"></div>

在document任何元素上绑定事件处理器：

1 2 3 |
    $(document).ajaxSuccess(function() {  $( ".log" ).text( "Triggered ajaxSuccess handler." );});

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

1 2 3 |
    $( ".trigger" ).on("click", function() {  $( ".result" ).load( "ajax/test.html" );});

当我们点击class为 `trigger` 的元素并且Ajax请求成功完成，这个信息就会显示。

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

无论哪一个Ajax请求被完成，所有`ajaxSuccess`处理器都将被执行。如果我们必须区分不同的请求,我们可以使参数传递给这个处理器。 他是通过事件对象、 `XMLHttpRequest` 对象和设置对象中使用的请求，做每一次`ajaxSuccess` 处理器执行的。 举个例子,我们能限制我们的回调到只处理事件处理某一特定的URL:

1 2 3 4 5 6 |
    $(document).ajaxSuccess(function(event, xhr, settings) {  if ( settings.url == "ajax/test.html" ) {    $( ".log" ).text( "Triggered ajaxSuccess handler. The ajax response was: " +                      xhr.responseText );  }});

注意: 你可以得到返回的AJAX内容 察看XML和HTML的`xhr.responseXML` 或 `xhr.responseHTML` 之间的分别。

### 其他注意事项：

- 如果`global`选项设置为`false`，调用`$.ajax()` 或 `$.ajaxSuccess()`方法将不会被触发。

## 例子:

#### 当Ajax请求成功完成时，显示一个信息。

1 2 3 |
    $(document).ajaxSuccess(function(event, request, settings) {      $( "#msg" ).append( "<li>Successful Request!</li>" );      });