Sorry for my late reply, this is indeed a better way. Thank you!.
On Sep 23, 9:14 pm, getify <get...@gmail.com> wrote:
> I do this on two of my plugins, flXHR proxy and mpAjax. These were the
> two I talked about in my jQuery Conf talk on extending Ajax, and it
> comes down to exactly this method, wrapping the $.ajax call.
>
> But, one thing I would suggest, do this instead:
>
> (function($){
> var _ajax = $.ajax;
>
> $.extend({
> ajax:function(o){
> if (this.data......
> ....
> return _ajax.call(this,o);
> }
> });
>
> })(jQuery);
>
> I believe that's the more suggested way of extending/overriding
> functions the "jQuery" way. Also, the ".call()" makes sure to preserve
> the "this" binding for the original ajax call, which I think is a
> safer way to deal with jQuery internals overriding.
>
> On Sep 23, 1:52 am, gMinuses <gminu...@gmail.com> wrote:
>
> > Thank you very much! Great idea!
>
> > Here is my implementation, works so far:
>
> > (function ($) {
>
> > var _ajax = $.ajax,
> > A = $.ajax = function(options) {
> > if (A.data)
> > if(options.data) {
> > if(typeof options.data !== 'string')
> > options.data =
> > $.param(options.data);
>
> > if(typeof A.data !== 'string')
> > A.data = $.param(A.data);
>
> > options.data += '&' + A.data;
> > } else
> > options.data = A.data;
>
> > return _ajax(options);
> > };
>
> > })(jQuery);
>
> > On Sep 22, 10:57 pm, Nathan Bubna <nbu...@gmail.com> wrote:
>
> > > My JSON-REST plugin does this by wrapping $.ajax with other method(s).
> > > Just add an object of params to
> > > $.rest.data.http://plugins.jquery.com/project/rest
>
> > > You can do this by wrapping/replacing the $.ajax method yourself
>
> > > (function ($) {
>
> > > var _ajax = $.ajax,
> > > A = $.ajax = function(options) {
> > > if (A.data) {
> > > //TODO: the appending in here, i just don't feel like
> > > writing all of this
> > > }
> > > return _ajax(options);
> > > };
> > > };
>
> > > })(jQuery);
>
> > > // then make a call this:
> > > $.ajax.data = { myParam: 'alwaysAppendThis' };
> > > // and all your ajax calls will get that data
> > > $.get({...})
> > > $.post({...})
> > > // and so on
>
> > > On Tue, Sep 22, 2009 at 1:18 AM, gMinuses <gminu...@gmail.com> wrote:
>
> > > > Is there a way to automatically append some parameters in every ajax
> > > > call's query string?
>
> > > > "ajaxStart" event doesn't send ajax options to callback function, so
> > > > there is not way to modify the query string.
>
> > > > "ajaxSend" event doesn't work with GET request, because the query
> > > > string is already appended to the url and xhr is already open, so
> > > > there is no way to change the url.
>
> > > > For "beforeSend", it's the same as "ajaxSend".
>
> > > > Set global setting in ajaxSetup will not work, if "data" is specified
> > > > in individual ajax calls.
>
> > > > I'd like to add parameters like 'mode=ajax' to make server respond as
> > > > little data as posible(e.g, no header, no footer), and degrade
> > > > gracefully.
>
> > > > I have many ajax calls to make, and adding these parameters to every
> > > > single of them manually is very tedious.
>
> > > > So how can I achieve this in jQuery?
>
> > > > Thanks.- Hide quoted text -
>
> > - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" group.
To post to this group, send email to jquery-dev@googlegroups.com
To unsubscribe from this group, send email to
jquery-dev+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---