Skip to main content

Bug Tracker

Side navigation

#1362 closed feature (fixed)

Opened July 05, 2007 02:31PM UTC

Closed May 15, 2008 08:49PM UTC

$.ajax(): pass 'settings' object to 'success' callback

Reported by: Chainfire Owned by:
Priority: major Milestone: 1.2.4
Component: ajax Version: 1.1.3
Keywords: Cc:
Blocked by: Blocking:
Description

I'm finding I want to pass data to the complete callback quite often, and I've seen the question come over IRC a couple of times as well. Currently I have this solved by using $().ajaxSuccess, but using the success callback would be neater.

'Current way' of doing it:

$.ajax({ ..., mydata: data});
$(document).ajaxSuccess(function(event, xhr, settings) {
  if (settings.url == ...) { // check for right ajax request
    alert(settings.mydata); // do something useful instead
  }
});

It would be much better if the settings structure was passed to the complete callback as well:

$.ajax({ ..., mydata: data, success: function(data, settings) {
  alert(settings.mydata);
}});

Possibly pass the XHR object as well to make the functions more consistent with the $.ajaxXXXX callbacks. Ofcourse this would apply to the 'complete' callback in much the same way.

Attachments (0)
Change History (2)

Changed August 21, 2007 02:19PM UTC by Chainfire comment:1

Seems I've been dumb. You can just use 'this' to access the parameter object passed to $.ajax from the callback. That really should be in the $.ajax() docs though.

Changed May 15, 2008 08:49PM UTC by flesler comment:2

milestone: 1.1.41.2.4
resolution: → fixed
status: newclosed

The settings hash is now received by the handler, and (at least now), the docs mention the this.