One problem with APEX is it has issues with dealing with text values of greater than 32k, while there is a fairly simple workaround it does have quite a few pieces and there has to be an easier way to do it.
I've created a working example here.
Setting the CLOB
Once the apex.ajax.clob object is created you just call set method giving it a string ._set(String Value);
It will automatically create a collection in your session CLOB_CONTENT and populate the CLOB001 column.
You can then use that in a page or application level process , usually by calling a doSubmit() and submitting the page.
The p.responseText on successful population of the CLOB will be SUCCESS.
Getting the CLOB
Getting a CLOB is much the same as setting one. Create the apex.ajax.clob object setting the function to call when p.readyState and then call the ._get() method which doesn't take any parameters.
This solution only deals with one clob at a time and the clob is alway put into the CLOB_CONTENT collection, though dealing with multiple clobs is also much easier, more on that later ;). But it is much easier to work with than the old workaround.
I just watched 2001: A Space Odyssey in the last week in HD. If you've never seen or it's been awhile or never seen it in HD do yourself a favor and check it out it's an amazing movie, though it looks like they were a little off on the dates.