I can't say that I follow all examples described properly, but in general I
would very much agree that, wherever possible, only use 'raw' data between
server and (Ajax/JavaScript) client. As soon as the server does View or
redirects, things gets complicated quickly - for both sides.

So if it is at all possible, to ensure a clean protocol, try to send all
information as XML or JSON. If you/we use JSON, I might also suggest to wrap
it in an error-inducing layer, to be stripped by the client before eval(),
to avoid JavaScript Cross-domain snooping.

Cheers,
PS

On Feb 4, 2008 9:11 AM, Felix Meschberger <[EMAIL PROTECTED]> wrote:

> Hi,
>
> Thinking about this a bit, I get quite at unease. Initially I understood
> ujax as a two-part protocoll: A client-side and a server-side part. The
> server-side part would care for accessing the storage while the
> client-side would care for user interaction and GUI support. This IMHO
> means, the protocol should be defined for "machine-machine" interaction
> and leave the human interface to the client-side frontend.
>
> Looking from this position, there are the following options:
>
>   * Send back success information for the client
>   * Redirect to the input form submitting the POST
>   * Redirect to the modified/created Resource
>
> The main issue is the question of sending back success information,
> because the other two cases can be handled by the ujax:redirect
> parameter. Now for sending this information and keeping in mind the
> separation of the tasks of client and server, I would just send back
> plain machine readable information, that is JSON (parsing HTML is
> error-prone at best ;-) ).
>
> Therefore, I would really like to make it as simple as possible by
> defining a new property ujax:response as follows and dropping
> ujax:redirect:
>
>    ujax:response = ujax:status  -> send back status info as JSON
>    ujax:response = *[ext]       -> redirect to modfied/created Resource
>                                    where ext is used as the extension,
> default .html
>    ujax:response = ujax:referer -> redirect to Referer:
>
> As a default (when ujax:response property is missing), I suggest to
> redirect to the created/modified Resource.
>
> Am Samstag, den 02.02.2008, 14:13 +0100 schrieb Tobias Bocanegra:
> > another thought: since the extension of a request pretty much
> > determines what content should be returned, i suggest to use the
> > extension to select the POST response:
> >
> > assume a resource at /foo/bar
> >
> > POST /foo/bar
> >    writes back changes and redirect per default to the referrer
>
> Not sure...
>
> > POST /foo/bar.html
> >   writes back changes and responds with the suggested HTML status
> response
>
> Probably might also expect to just get the modified Resource back as
> HTML ???
>
> > POST /foo/bar.json
> >   writes back changes and responds with a JSON status response (tbd)
>
> Same but as JSON ??
> >
> > for node creation:
> >
> > POST /foo/bar/*
> >   creates node, writes back changes and redirects to the newly created
> > resource (default .html ext.)
> > POST /foo/bar/*.html (or /foo/bar.html/*) ??
> >   creates node, writes back changes and responds with the HTML status
> response
> > POST /foo/bar/*.json (or /foo/bar.json/*) ??
> >   creates node, writes back changes and responds with the JSON status
> response
>
> These show exactly, the complexities of your proposal, all look bad and
> ugly..
>
> Regards
> Felix
>
> >
> > things that at not very clear to be are:
> > - needs the creation request to be /*.html or .html/* so that the
> > resources .html extension mapped
> >   servlet does not get selected?
> > - how can one still use a custom POST script for that resource ? maybe
> > the extension for the
> >  HTML status response should be .xhtml ?
> >
> >   regards, toby
> >
> > On 2/1/08, Tobias Bocanegra <[EMAIL PROTECTED]> wrote:
> > > hi,
> > > i've discussed this with david extensively and since he was the
> > > inventor of the ujax (former rjax) "protocol" he thinks now that the
> > > proposal to use the referer as default redirect is not useful.
> > > it was also david that proposed the html response which is of a format
> > > that it is human (browser response), machine (xml) and dhtml
> > > (javascript) readable.
> > >
> > > i think it would be great to apply the patch of SLING-213 and forget
> > > about the referer stuff of SLING-126.
> > >
> > > regards, toby
> > >
> > >
> > > On 2/1/08, Felix Meschberger <[EMAIL PROTECTED]> wrote:
> > > > Hi all,
> > > >
> > > > I am trying to apply the patch of SLING-213 [1], which conains a
> rewrite
> > > > of the ujax POST servlet. There is just one issue with this patch,
> which
> > > > I would like to sort out on the list. This patch changes the
> response
> > > > behaviour of the POST requests as follows:
> > > >
> > > >    * The default response is a status 200 response containing a list
> of
> > > > changes in HTML
> > > >      format
> > > >    * Setting the ujax:redirect request parameter to "*" causes a 302
> > > > (temporary redirect)
> > > >      to the modified/created node
> > > >    * Setting ujax:redirect to an URL causes a 302 (temporary
> redirect)
> > > > to the given URL
> > > >
> > > > This setting collides, with what was intended by SLING-126 [2],
> where a
> > > > redirect to the Referer URL was postulated.
> > > >
> > > > I would now like to resolve this issue of the response to a POST
> > > > request. Can you please enlighten me on that front ?
> > > >
> > > > My personal opinion would be to get redirected to the Referer by
> default
> > > > (this is the standard GUI case, probably), with an option to
> redirect to
> > > > a possibly newly created node (ujax:redirect is *) or - in the Ajax
> case
> > > > - get a machine readable response, JSON that is.
> > > >
> > > > WDYT ?
> > > >
> > > > Regards
> > > > Felix
> > > >
> > > > [1] http://issues.apache.org/jira/browse/SLING-213
> > > > [1] http://issues.apache.org/jira/browse/SLING-126
> > > >
> > > >
> > >
> > >
> > > --
> > > -----------------------------------------< [EMAIL PROTECTED]>---
> > > Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001
> Basel
> > > T +41 61 226 98 98, F +41 61 226 98 97
> > > -----------------------------------------------< http://www.day.com>---
> > >
> >
> >
>
>

Reply via email to