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