[Seaside] Accessing the Post body/content from an expired/cached
page before initialRequest
Ramshreyas
ramshreyas.rao at gmail.com
Tue Mar 13 05:59:44 UTC 2012
Dear all,
I am developing a (non-commercial) web application for mobiles on
Phar1.0/seaside30 (hosted on seaside-hosting for now, cheers to this
brilliant service).
I would like the user to bookmark a transaction page on her phone, add
it to her home screen and use it like any other app. She will enter data
for submission before any callbacks/page-loads are performed.
This means that she will almost always enter data into a form on an
expired page and submit.
I find that the WARequest object available to me from
RootTask>>initialRequest has its Post body stripped and is converted to
a 'Get' request at that stage.
Is this true? I am a newb, ( to web-development itself, seaside is my
first framework! Avoided programming in general until I found, and fell
in love with, smalltalk) so perhaps I simply don't understand how the
information is encoded into the WARequest object, or in the Post method
in general.
I tried something like:
RootTask>>initialRequest: aRequest
| expiredFormData |
expiredFormData := aRequest bodyDecoded (or aRequest postFields..,
aRequest rawBody etc )
The body is nil, as confirmed upon putting a halt here and inspecting
the WARequest object. It also seems to have converted the original Post
method into a Get. This would make sense given the instructions for
'recovering from an expired session' that use updateUrl (and hence Get)....
When I (tentatively) examined the full stack, I found something that
seemed to indicate the HTTPRequest is 'converted' to a 'native' request
way before RootTask>>initialRequest is called - I'm out of my depth
here, and am wary of monkeypatching the innards without some guidance.
How would one capture Post data from an expired page and decode it?
Where is the best place to intercept the incoming request?
Thanks, and sorry if I am posting below the level of this forum!
ram
More information about the seaside
mailing list