Dash,
  Thanks for the reply.  Are you saying that I have to evaluate the
reponseText myself if the JSON is in the response body?  I configured my
application to not send the X-JSON header, but prototype is still not
evaluating the response body.

Thanks,
-stephan

On 5/21/07, David Dashifen Kees <[EMAIL PROTECTED]> wrote:
>
>
> The problem is how you're sending information in the X-JSON header.
> Prototype will try to automatically evaluate anything in the X-JSON
> header assuming that it is a JSON string.  You're X-JSON header is not a
> JSON string but rather another call to eval() so the internal Prototype
> String.evalJSON() function is probably your failure point.
>
> Instead, either make "var json = transport.responseText.evalJSON(true)"
> the first line of your callback function, or make sure that your X-JSON
> header is *only* a JSON string.
>
> Also, you should be aware that Prototype 1.5.1 added security features
> to help avoid the execution of JSON with invalid code or malicious code
> within it.  As a result, JSON created and passed around by prototype has
> /*-secure- before your JSON and */ after it.  If you use the
> String.evalJSON() function to parse your information, you might need to
> explicitly add these strings before and after your JSON to evaluate it
> properly.
>
> - Dash -
>
> smellis wrote:
> > Hello Everyone,
> >
> >   I upgraded to 1.5.1 today and I have run into a problem: automatic
> > JSON evaluation has stopped working.  On the server side I use
> > Catalyst, an MVC framework for perl.  I use Catalyst::View::JSON to
> > turn my perl data structures in to JSON.  Here is what my response
> > headers look like:
> >
> > Response Headers
> > Connection    close
> > Date  Mon, 21 May 2007 15:12:54 GMT
> > Content-Length        984
> > Content-Type  application/javascript; charset=utf-8
> > Set-Cookie    bg2_session=5279b9253f970f84dd032ec4a00ba2a34dcff66c;
> > path=/; expires=Mon, 21-May-2007 17:12:54 GMT
> > Status        200
> > X-Catalyst    5.7007
> > X-JSON        eval("("+this.transport.responseText+")")
> >
> > The JSON is actually in the response body.  I had to subclassed my
> > JSON view to spit out application/javascript, because the default
> > content-type (application/json) is not listed in the prototype
> > documentation as one that will cause prototype to auto evaluate the
> > reponse.  I have tried turning off the X-JSON header to see if that
> > was a problem, but it still doesn't work.  Any ideas?  Thanks in
> > advance. -stephan
> >
> >
> > >
> >
> >
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Spinoffs" 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/rubyonrails-spinoffs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to