You can always quote the word "do" on the left side of the colon:
{ "do": "something", x: y } It's not a bug, it's part of the Javascript language. On Sun, Sep 27, 2009 at 7:49 AM, indre1 <ind...@gmail.com> wrote: > > Tested, it can be bypassed with ajax(): > > $.ajax({ > type: "GET", > url: "profile.php", > data: "do=addfriend&id=2" > }); > > But is the get and "do" thing a bug? > > On Sep 27, 3:37 pm, indre1 <ind...@gmail.com> wrote: >> After 3 DAYS, I finally figured it out: >> $.get('profile.php', { do: 'addfriend', id: userId } >> >> The problem is, that the word "do" is reserved or something, thus you >> can't use it in get, ajax and probably elsewhere. test.php? >> do=something will never work from jQuery then, or how should I escape >> it? >> Is this a bug or just something everyone has to know? Strangely, on FF >> it all worked. >> >> $.get('profile.php', { action: 'addfriend', id: userId } works >> perfectly. >> >> On Sep 27, 1:27 pm, indre1 <ind...@gmail.com> wrote: >> >> > Well, the problem still seems to be in the get() function. For >> > example, IE gives the following error: Object doesn't support this >> > property or method >> > With: >> > (function($) { >> > $.fn.followUser = function(userId) { >> > this.fadeOut(250, function(){ >> > $.get('profile.php', { do: "addfriend", id: userId }, >> > function >> > (data){ >> > return this.html('<p>Follower >> > added</p>').fadeIn(250); >> > }); >> > }); >> > } >> >> > })(jQuery); >> >> > If I remove the whole $.get() part, the error is gone. Chrome will >> > start fading out too. The code will then look like: >> > (function($) { >> > $.fn.followUser = function(userId) { >> > this.fadeOut(250, function(){ >> >> > }); >> > } >> >> > })(jQuery); >> >> > I even tried replace the get() with ajax(), but ran into the same >> > problem. >> >> > Btw, thanks for the attr('rel') suggestion. This is something I was >> > also looking for, but couldn't figure it out :) The html is now: >> > <script type="text/Javascript"> >> > $(function(){ >> > $('div#followButton a').click(function(){ >> > $('div#followButton a').followUser($(this).attr('rel')); >> > });}); >> >> > </script> >> >> > ... >> >> > <div id="followButton"> >> > <a rel="2">test1</a> >> > </div> >> >> > On Sep 26, 6:48 pm, Matt Quackenbush <quackfu...@gmail.com> wrote: >> >> > > @ Mike - Thanks for making me take a closer look at the original code. I >> > > get it now. My bad. >> >> > > /me crawls back into his cave to hibernate some more -- Turtle, turtle, on the ground, Pink and shiny, turn around.