30

我有以下内容:

    $.ajax(link.href,
    {
        cache: false,
        dataType: 'html'
    })
        .done(onDialogDone)
        .fail(onDialogFail);

这工作正常并调用 onDialogDone 。但是,我应该期望看到哪些参数提供给 onDialogDone 以及我应该期望看到 onDialogFail 的哪些参数。

我问的原因是因为我使用打字稿,并且我想在定义 onDialogDone 和 onDialogFail 时提供正确的参数。

4

3 回答 3

38

和 的参数与函数对应的 和参数的参数相同.done(),即:.fail()success:error:$.ajax()

.done( function(data, textStatus, jqXHR) { ... } );

.fail( function(jqXHR, textStatus, errorThrown) { ... } );

出于打字稿的目的,textStatusanderrorThrown是字符串,jqXHRObject,并且data取决于远程服务器向您发送的内容。

于 2012-10-30T14:33:49.863 回答
4

传递给done处理程序的三个参数是:

data, textStatus, jqXHR

你可以在这里阅读更多:http: //api.jquery.com/jQuery.ajax/

  1. data是响应消息
  2. textStatus将永远在done功能上取得成功
  3. jqXHR是原始 XMLHttpRequest
于 2012-10-30T14:34:34.617 回答
3

看看这个

方法(jqXHR 和 Deferred 实现的一部分,此处显示仅为清晰起见)

 .ajax().always(function(a, textStatus, b){});

替换 jQuery 1.8 中已弃用的方法 .complete()。为响应成功的交易,参数与 .done() 相同(即 a = data,b = jqXHR),对于失败的交易,参数与 .fail() 相同(即 a = jqXHR,b = errorThrown)。这是上述完整回调函数的另一种构造。有关实现细节,请参阅 deferred.always()。

    .ajax().done(function(data, textStatus, jqXHR){});

替换 jQuery 1.8 中已弃用的方法 .success()。这是上述成功回调函数的另一种构造。有关实现细节,请参阅 deferred.done()。

    .ajax().fail(function(jqXHR, textStatus, errorThrown){});

替换 jQuery 1.8 中已弃用的方法 .error()。这是上述完整回调函数的另一种构造。有关实现细节,请参阅 deferred.fail()。

    .ajax().then(function(data, textStatus, jqXHR){}, function(jqXHR, textStatus, errorThrown){});

结合了 .done() 和 .fail() 方法的功能。有关实现细节,请参阅 deferred.then()。

    .ajax().pipe(function(data, textStatus, jqXHR){}, function(jqXHR, textStatus, errorThrown){});

结合了 .done() 和 .fail() 方法的功能,允许操作底层的 Promise。有关实现细节,请参阅 deferred.pipe()。

于 2012-10-30T14:28:34.520 回答