在jQuery的ajax成功回调中,textStatus会不会"成功"?

Rob*_*ert 22 ajax jquery callback

文档中有一个可能的值列表,如果error()回调触发("超时","错误","未修改"和"parsererror"),textStatus可能是值,但没有为success()事件指定任何值.

除了"成功"之外还有其他值可以传递给success()回调吗?这记录在哪里?

小智 8

只有成功才能取得成功.所以简单的答案是否定的.

无论ajax如何做,完全将永远运行.如此完整应该能够得到和值textthatus可以返回.

在论坛上我发现textstatus可以是任何这些值

"timeout"
"error"
"notmodified"
"success"
"parsererror"
Run Code Online (Sandbox Code Playgroud)

http://forum.jquery.com/topic/jquery-ajax-textstatus-documented

  • 你的答案很简单.jQuery源似乎表明如果返回`notmodified`,`success`回调将会运行.http://github.com/jquery/jquery/blob/master/src/ajax.js#L436 (6认同)

Ale*_*man 7

Successcomplete此处记录.你真的不需要担心textStatus被传递给函数,它们都是自动处理的.当/如果调用成功,则调用success函数,并在其他所有内容的最后调用complete.

因此,作为我正在处理的事情的一个例子,我将三个函数链接在一起,当你点击页面的一部分时触发:div淡出,当它完成时它会运行一个ajax调用.成功函数更新div的内容(当它淡出时),然后完整的函数调用div上的fadeIn.所以它的作用是淡出,更新,并淡入新内容.

  • 是的,完整可以是任何可能的textStatus代码.成功只会成功或未经修改.Notmodified是在它只使用缓存版本时使用的,很有可能 - 虽然我觉得很奇怪,当你基本上说"嘿,没有任何改变"时会成功调用. (5认同)
  • 成功也可以是'nocontent`.jQuery 1.x可以返回`success`,jQuery 2.x可以为完全相同的调用返回`nocontent`. (2认同)