Hi Jörn/Rick,

I'd prefer a structured error thrown too...but as I said I just brought
this inline with the relevant methods aobve.

See my question:

> NOTE: Let me know if there's a more "preferred" way to handle this
> error

However, at the moment it doesn't just die silently...it just dies full
stop.  Meaning you can't even move on to testing data to see if it's
valid or not.

At least with the patch you can then test and if data is null then the
JSON eval apparently failed.


roBman


On Mon, 2008-11-03 at 10:30 +0100, Jörn Zaefferer wrote:
> Afaik so far invalid JSON would trigger an ajaxError, which is the
> same as "dies silently" as long as there is no ajaxError event bound.
> 
> Swallowing the exception and returning false is not at all better.
> 
> Jörn
> 
> On Sun, Nov 2, 2008 at 8:56 PM, Andrea Giammarchi
> <[EMAIL PROTECTED]> wrote:
> > fale is a JSON valid result, I would return undefined that in JSON should
> > never exist as case.
> >
> > It's not the first time I return true or false from the server, and a false
> > positive like false (sorry for the concept) will mess up a lot of requestes
> > without a reason.
> >
> >
> >
> > On Sun, Nov 2, 2008 at 6:21 PM, Rick Strahl <[EMAIL PROTECTED]> wrote:
> >>
> >> Wouldn't it be better to return the Exception object (or something
> >> that you can test for anyway)?
> >>
> >> Otherwise I'd argue that the exception thrown by a failed eval is a
> >> better choice than returning false.
> >>
> >> +++ Rick ---
> >>
> >>
> >> On Oct 31, 3:22 pm, Rob Manson <[EMAIL PROTECTED]>
> >> wrote:
> >> > Hi,
> >> >
> >> > not sure if you're happy for patches to be posted directly here...so
> >> > feel free to tell me where to patch it 8)
> >> >
> >> > roBman
> >> >
> >> > BUG:
> >> > httpData: function in ajax.js (used by getJSON() calls or get() calls
> >> > where type == "json") doesn't currently test the eval is successful.
> >> >
> >> > e.g. it just assumes that valid JSON was returned and eval will succeed,
> >> > silently failing if this is the case.
> >> >
> >> > FIX:
> >> > Here's a patch to bring it in line with the other functions above.
> >> >
> >> > e.g. httpSuccess and httpNotModified
> >> >
> >> > NOTE: Let me know if there's a more "preferred" way to handle this error
> >> >
> >> > DIFF against 1.2.6 from svn:
> >> > Index: src/ajax.js
> >> > ===================================================================
> >> > --- src/ajax.js (revision 5918)
> >> > +++ src/ajax.js (working copy)
> >> > @@ -478,9 +478,12 @@
> >> >
> >> >                 // Get the JavaScript object, if JSON is used.
> >> >                 if ( type == "json" )
> >> > -                       data = eval("(" + data + ")");
> >> > -
> >> > -               return data;
> >> > +                       // Check to make sure the JSON returned
> >> > evaluates correctly
> >> > +                       try {
> >> > +                               data = eval("(" + data + ")");
> >> > +                               return data;
> >> > +                       } catch(e) {}
> >> > +                       return false;
> >> >         },
> >> >
> >> >         // Serialize an array of form elements or a set of
> >>
> >
> >
> > >
> >
> 
> > 


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to