【问题标题】:jquery: aborting ajax will trigger done or fail?jquery:中止ajax会触发完成还是失败?
【发布时间】:2013-01-04 07:59:31
【问题描述】:

我对 $.ajax、.done 和 .fail 一无所知

我开始我的 ajax 调用,将它分配给一个变量。

在下一次 ajax 调用时,我测试是否定义了变量,然后调用 abort。

我无法理解 .abort() 是否会导致 .done 的执行。

如果导致.done,如何检查状态和检测中止呼叫?

来自http://api.jquery.com/jQuery.ajax/#jqXHR

特别是,在对象上调用 .abort() 将在请求完成之前停止请求。

...所以我知道 .done 在 .abort 之后不会被解雇,对吧?

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

    fail 回调的第二个参数是 textStatus,对于应为 "abort" 的中止请求。我不希望done 回调被触发。

    【讨论】:

      【解决方案2】:

      在“abort”之后,只要没有异常发生,它就会调用“done”(更具体地说,done(0, statusText || "abort"))(可以从source code验证)。这是合理的,因为中止操作是由用户发出的,并且abort 已完成 没有失败。

      【讨论】:

      • 仔细查看源代码显示它调用fail 而不是done。你看到被调用的done 不是回调,而是一个内部函数:// Callback for when everything is done。它有一个检查// If successful, handle type chaining 实现为if ( status >= 200 && status < 300 || status === 304 ),其else 部分显示// We extract error from statusText then normalize statusText and status for non-aborts
      猜你喜欢
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多