q0987 q0987 - 8 months ago 49
jQuery Question

jquery - Can I retrieve (event, xhr, options) from .ajaxStart or .ajaxStop?

Based on http://api.jquery.com/ajaxComplete/

.ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) )
.ajaxStart( handler(event) )

To my knowledge and experiements, the XMLHttpRequest and ajaxOptions parameters for the handler of .ajaxStart or .ajaxStop are null.

I would like to retrieve the ajaxOptions information inside the functions of .ajaxStart and .ajaxStop. Is that possible?

What problems will I have if I hook up with .ajaxSend + .ajaxComplete rather than .ajaxStart + .ajaxComplete. The major reason I like to do so is that .ajaxSend can access all three parameters.

Answer Source

You can't access them here because these events are for when the active count of requests changes to above 0 and back, but aren't per-request, they're for overall activity.

I think what you're after is .ajaxSend() and .ajaxComplete() which fire per-request and have the requested parameters, for example:

$(document).ajaxSend(function(event, xhr, options) {
  //do start stuff
}).ajaxComplete(function(event, xhr, options) {
  //do end stuff