Hi

This may not be the best solution but here is what I have done and it
works for me ..

I am using a custom tapestry.js with this addition to the ajaxRequest call

                                if (Tapestry.windowUnloaded)
                                        return;
                                
                                /*
                                 * Prototype treats status == 0 as success, 
even though it seems
                                 * to mean the server didn't respond.
                                 */
                                if (!response.getStatus() || 
!response.request.success()) {
                                        
Tapestry.error(Tapestry.Messages.ajaxRequestUnsuccessful);
                                        return;
                                }

                                
***if(response.getHeader("Content-type").indexOf("text/html") == 0 &&
                                                
response.responseText.indexOf("<!DOCTYPE") == 0){
                                        
                                        alert("Session expired. Please login 
again");
                                        window.location.href = 
"/sessionexpired";
                                        return;
                                }**
                                
                                
As I already said, not the best of solutions :)

On Thu, Aug 25, 2011 at 1:38 PM, Gunnar Eketrapp
<gunnar.eketr...@gmail.com> wrote:
> I still havn't managde to get ajax calls to redirect.
>
> I changed to reload as a I saw in this mailing list.
> In Chromes debugger I can see that the timed out ajax call returns ..
>
> {"script":"window.location.reload();"}
>
> ... but nothing happens on the client side.
>
> So the question is still open do I have to do something to enable this ?
>
> Thanks in advance!
>
> 2011/8/24 Magnus Kvalheim <mag...@kvalheim.dk>
>
>> No sorry, that's not relevant for this. Eager to help, but I should
>> have paid more attention to detail :)
>>
>> On Wed, Aug 24, 2011 at 8:33 AM, Magnus Kvalheim <mag...@kvalheim.dk>
>> wrote:
>>
>> > I sometimes use a proxy for doing redirects.
>> >
>> > *public class RedirectProxy {*
>> > * @Persist private String redirectURL;*
>> > * @Inject private ComponentResources _resources;*
>> > * Object onActivate(){*
>> > * try {*
>> > * URL url = new URL(redirectURL);*
>> > * return url;*
>> > * } catch (Exception e) {*
>> > * // TODO: handle exception*
>> > * } finally{*
>> > * _resources.discardPersistentFieldChanges(); *
>> > * }*
>> > * return Index.class;*
>> > * }*
>> > * public void setRedirectURL(String redirectURL) {*
>> > * this.redirectURL = redirectURL;*
>> > * }*
>> > *
>> > *
>> > * public String getRedirectURL() {*
>> > * return redirectURL;*
>> > * }*
>> > *}*
>> >
>> > Then from an eventhandler:
>> > *redirectProxy.setRedirectURL(u);*
>> > *return redirectProxy;*
>> >
>> > It could perhaps be useful for this case?
>> >
>> > --magnus
>> >
>> > On Tue, Aug 23, 2011 at 11:00 PM, Gunnar Eketrapp <
>> > gunnar.eketr...@gmail.com> wrote:
>> >
>> >> 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
>> >>
>> >
>> >
>>
>
>
>
> --
> [Hem: 08-715 59 57, Mobil: 070-991 86 42]
> Allévägen 2A, 132 42 Saltsjö-Boo
>



-- 
Regards

Taha Hafeez Siddiqi (tawus)
http://tawus.wordpress.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org

Reply via email to