Hum .. this did not work so I guess I have to do something on the client
side as well ...

           if (request.isXHR()) {
                OutputStream os =
response.getOutputStream("application/json;charset=UTF-8");
                os.write(("{\"script\":\"window.location.replace('" +
link.toAbsoluteURI() + "');\"}").getBytes());
                os.close();
            } else {
                response.sendRedirect(link);
            }


2011/8/23 Kalle Korhonen <kalle.o.korho...@gmail.com>

> On Mon, Aug 22, 2011 at 4:42 PM, Howard Lewis Ship <hls...@gmail.com>
> wrote:
> > Actually, perhaps Tapestry's client-side support should, by default,
> > handle 302 correctly.
>
> Yes, perhaps so. But the correctness is "in the eye of the beholder".
> It's clear that a 302 response to a non-ajax request always causes a
> redirect, but not necessarily so for an ajax request. If the default
> behavior was easily overridable then yes, why not. Perhaps I should
> just bring tapestry-exceptionpage functionality to the core.
>
> Kalle
>
>
> > Currently, Tapestry's JSON response for partial page updates includes
> > a special key for performing a redirect.
> >
> > On Mon, Aug 22, 2011 at 2:20 PM, Kalle Korhonen
> > <kalle.o.korho...@gmail.com> wrote:
> >> On Mon, Aug 22, 2011 at 1:27 PM, Gunnar Eketrapp
> >> <gunnar.eketr...@gmail.com> wrote:
> >>> I just rewrote my very old ProtectedPageGateKeeper that implemented
> >>> Dispatcher with a new one
> >>> inspired by Howard's blog
> >>> http://tapestryjava.blogspot.com/search/label/security
> >>> The new one implements ComponentRequestFilter and is better suited for
> >>> protecting ajax enabled pages.
> >>> So I thought ...
> >>> Now to my problem:
> >>> The redirect that takes place after an ajax call seems to disappear
> into
> >>> thin air. I.e. the page displaying
> >>> a rollling ajax loader is not redirected to my /noacess page. I have to
> hit
> >>> a full page refresh for the redirect to work.
> >>> Is there some trick needed in order to get the redirect to work for an
> ajax
> >>> call.
> >>> Sorry for asking stupid newbie questions ... of course I have missed
> >>> something again!
> >>
> >> I don't think it's a stupid newbie question but obviously you cannot
> >> just send 302 uri as a response to an ajax request. If you want a full
> >> page refresh, you can handle it similarly how the tynamo-exceptionpage
> >> module (http://tynamo.org/tapestry-exceptionpage+guide) handles
> >> exceptions in ajax responses
> >> (
> http://svn.codehaus.org/tynamo/trunk/tapestry-exceptionpage/src/main/java/org/tynamo/exceptionpage/services/ConfigurableRequestExceptionHandler.java
> ).
> >> Or, take a look at T5.3's new ajax error handler, rendering an iframe
> >> on the fly in response to an ajax error.
> >>
> >> Kalle
> >>
> >>
> >>> 2011-08-22 21:54:53.243 [btpool0-11] DEBUG
> u.s.UtskicketModule.RequestLogger
> >>> - Request: /group/members.grid.pager/1/grid (Method=POST,
> >>> browser=Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101
> Firefox/5.0,
> >>> isXHR=true)
> >>> 2011-08-22 21:54:53.243 [btpool0-11] DEBUG
> >>> u.services.ProtectedPageGateKeeper2 - Page path:
> >>> /group/members.grid.pager/1/grid
> >>>
> >>> 2011-08-22 22:01:06.500 [btpool0-10] DEBUG
> u.s.UtskicketModule.RequestLogger
> >>> - Request: /group/members.grid.pager/7/grid (Method=POST,
> >>> browser=Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101
> Firefox/5.0,
> >>> isXHR=true)
> >>> 2011-08-22 22:01:06.500 [btpool0-10] DEBUG
> >>> u.services.ProtectedPageGateKeeper2 - Page path:
> >>> /group/members.grid.pager/7/grid
> >>> 2011-08-22 22:01:06.500 [btpool0-10] DEBUG
> u.s.UtskicketModule.RequestLogger
> >>> - Request: /noaccess (Method=GET, browser=Mozilla/5.0 (Windows NT 6.1;
> >>> rv:5.0) Gecko/20100101 Firefox/5.0, isXHR=false)
> >>>
> >>> Note: The return from the request above does not show up in the browser
> ...
> >>>
> >>> 2011-08-22 22:01:56.956 [btpool0-10] DEBUG
> u.s.UtskicketModule.RequestLogger
> >>> - Request: /group/members/3 (Method=GET, browser=Mozilla/5.0 (Windows
> NT
> >>> 6.1; rv:5.0) Gecko/20100101 Firefox/5.0, isXHR=false)
> >>> 2011-08-22 22:01:56.960 [btpool0-10] DEBUG
> >>> u.services.ProtectedPageGateKeeper2 - Page path: /group/members/3
> >>> 2011-08-22 22:01:56.964 [btpool0-10] DEBUG
> u.s.UtskicketModule.RequestLogger
> >>> - Request: /noaccess (Method=GET, browser=Mozilla/5.0 (Windows NT 6.1;
> >>> rv:5.0) Gecko/20100101 Firefox/5.0, isXHR=false)
> >>>
> >>> Note: Now we get to the /noaccess page
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >> For additional commands, e-mail: users-h...@tapestry.apache.org
> >>
> >>
> >
> >
> >
> > --
> > Howard M. Lewis Ship
> >
> > Creator of Apache Tapestry
> >
> > The source for Tapestry training, mentoring and support. Contact me to
> > learn how I can get you up and productive in Tapestry fast!
> >
> > (971) 678-5210
> > http://howardlewisship.com
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> > For additional commands, e-mail: users-h...@tapestry.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


-- 
[Hem: 08-715 59 57, Mobil: 070-991 86 42]
Allévägen 2A, 132 42 Saltsjö-Boo

Reply via email to