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.
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.