In jQuery's ajax success callback, will textStatus ever not be "success"?
Solution 1
Success
and complete
are documented at here. You don't really need to worry about what textStatus is passed to the functions, it's all handled automatically. The success function is called when/if the call succeeds, and complete is called at the very end of everything else.
So, as an example from something I'm working on, I chained together three functions that are triggered when you click a section of the page: a div fades out, and when that's done it runs an ajax call. The success function updates the content of the div (while it's faded out), and then the complete function calls fadeIn on the div. So what it does is it fades out, updates, and fades back in with new content.
Solution 2
Success can only be called on success. So the easy answer is no.
Complete will always run, regardless of what how ajax did. So complete should be able to get and values textstatus can return.
On the forum I found textstatus can be any of these values
"timeout"
"error"
"notmodified"
"success"
"parsererror"
http://forum.jquery.com/topic/jquery-ajax-textstatus-documented
Solution 3
I don't see documentation per se, but you can find it in the source. Here's a nifty viewer.
http://james.padolsey.com/jquery/#v=1.4&fn=jQuery.ajax
Other possible values are "parsererror" and "notmodified".
Solution 4
From looking at the source it appears that notmodified
could be a value, although I've never seen it.
Related videos on Youtube
Robert
Updated on July 09, 2022Comments
-
Robert almost 2 years
In the documentation there is a list of possible values that textStatus might be if the
error()
callback fires ("timeout", "error", "notmodified" and "parsererror") but nothing specified for thesuccess()
event.Are there any other values besides "success" that could be passed to the
success()
callback? Is this documented anywhere? -
user113716 almost 14 yearsYour easy answer isn't quite right. The jQuery source does seem to show that the
success
callback will run ifnotmodified
is returned. github.com/jquery/jquery/blob/master/src/ajax.js#L436 -
Alex Zylman almost 14 yearsnotmodified is probably the value used if cache is set to true and it jsut uses a cached version.
-
Robert almost 14 yearsThat's the same documentation link I put in my question.
Complete
is called aftersuccess
ORerror
, right? Socomplete
's textStatus could be "success" or any of the error codes. And some of the other answers indicate thatsuccess
can be called with textStatus "notmodified". -
Alex Zylman almost 14 yearsYeah, complete could be any of the possible textStatus codes. Success will only be success or notmodified. Notmodified is used when it just uses a cached version, most likely - though it seems weird to me that success would be called when you're essentially saying "hey, nothing changed".
-
cyberwombat about 9 yearsSuccess can also be
nocontent
. jQuery 1.x can returnsuccess
and jQuery 2.x can returnnocontent
for the exact same call. -
bilal.haider over 7 yearsthe answer should be updated as its not right and misleading. textStatus in success callback could take other values as described in other answers here