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