rails removes newlines and spaces from ajax requests


I have an app which posts an ajax request with with text area content, but when it does post it it gets all the newlines and multiple spaces removed (need to use multiple spacing for use with markdown code snippets)

I've created a sample app which you can see here http://test.42horizons.com/test,

View it in IE 8 and both requests remove line spaces and new lines, view it in firefox 3.6.3 windows and the left request works ok and the right request removes line spaces and new lines

the echo action which the requests are sent to simply removes the controller and action keys from params and then does

render :text => params.to_json

Anyone have any ideas what I'm doing wrong?

After look deeper it looks like ActiveSupport::JSON.decode is to blame, heres an example

ActiveSupport::JSON.decode("data=\"\\u000a function(){\ \u000a var a = 1;\\u000a }\\u000a\\u000a \"") => data=\" function(){ var a = 1; }\n\"

Anyone know if theres a fix to this?

I think the way you're posting data is weird. You're taking a string, encoding it as json but then submitting it as a normal url encoded post


I've change the ajax posting from "data=some data" to "{data:'some data'}"

Hopefully thats what you meant

Unfortunatley this hasnt changed the response, rails is still removing the spaces and new lines

Is this what you mean?

I've change the ajax posting from "data=some data" to "{data:'some data'}"

So if you do that then you will need to set the content-type to application/json, or else rails will try to parse it as something else