在ajax .done中为函数提供了哪些参数?

时间:2012-10-30 14:23:09

标签: javascript ajax jquery typescript

我有以下内容:

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

这样可以正常工作并调用onDialogDone。但是,我希望看到哪些参数提供给onDialogDone,以及我期望在onDialogFail中看到什么。

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

3 个答案:

答案 0 :(得分:37)

.done().fail()的参数与$.ajax()函数的相应success:error:参数的参数相同,即:< / p>

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

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

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

答案 1 :(得分:4)

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

data, textStatus, jqXHR

您可以在此处阅读更多内容:http://api.jquery.com/jQuery.ajax/

  1. data是回复消息
  2. textStatus将始终在done函数
  3. 中取得成功
  4. jqXHR是原始的XMLHttpRequest

答案 2 :(得分:3)

检查this

方法(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()。