Home > Article > Web Front-end > Detailed introduction to events in jQuery Ajax_jquery
Ajax triggers many events.
There are two kinds of events, one is local event and the other is global event:
Local events: called and allocated through $.ajax.
The sequence of events is as follows:
ajaxStart global event
Starts a new Ajax request and no other Ajax requests are in progress at this time.
beforeSend local event
Fired when an Ajax request starts. You can set the XHR object here if needed.
ajaxSend global event
Global event triggered before request starts
success local event
Triggered when the request is successful. That is, the server does not return an error, and the returned data has no errors.
ajaxSuccess global event
Global request successful
error local event
Only triggered when an error occurs. You cannot execute both success and error callback functions at the same time.
ajaxError global event
Globally triggered when an error occurs
complete local event
Regardless of whether your request succeeds or fails, even if it is a synchronous request, you can trigger this event when the request is completed.
ajaxComplete global event
Triggered when the global request is completed
ajaxStop global event
Fires when no Ajax is in progress.
The parameters of local event callbacks are clearly written in the documentation, so I won’t go into details here.
In the global event, except ajaxStart and ajaxStop, other events have 3 parameters
event, XMLHttpRequest, ajaxOptions
The first is an event, the second is an XHR object, and the third parameter is the most useful, it is the parameter when calling this ajax.
For ajaxError, there is a fourth parameter, thrownError, which will only be passed when an exception occurs.
We can use ajaxOptions to write a global ajax event.
For example
For this example,
In this way, we can easily display the current ajax status somewhere globally.
Of course, as mentioned before, the third parameter is actually the parameter passed to ajax. Methods such as get/post/load/getScript/getJSON essentially call ajax methods, so the ajaxOptions.url attribute is always valid.
There are many more examples.
If you call with ajax, you can also pass custom parameters. In the following example, I customized a msg parameter for the ajax call
Other simple ajax methods, such as get, post, getJSON, etc., their callback functions are all set with success callbacks.
And only the load setting is actually the complete callback.
So, the callback function set in load should have 2 parameters.
XMLHttpRequest and textStatus
But that's not actually the case.
The load callback has three parameters
XMLHttpRequest.responseText, textStatus, XMLHttpRequest
So, you can
in the callback of load
Use textStatus=="success" or textStatus=="error" to determine whether the call is successful.
Or use the XMLHttpRequest.status attribute to determine whether it is 200 or 404 or something else.
In this regard, I think it is more advanced than ordinary get/post methods. It is impossible to set the error of each get in odd numbers. But setting a global ajaxError is actually a good choice.