[Catalyst] Usage of $c->uri_for and $c->res->redirect

Ashley apv at sedition.com
Wed Mar 26 20:26:32 GMT 2008


There are two approaches which have helped me. Remember the URI  
object underneath can be your friend.

1) Keep things relative.
    $c->uri_for("/blah")->path
    $c->uri_for("/blah")->path_query

2) Change the scheme yourself.
    my $uri = $c->uri_for("/blah");
    $uri->scheme( $my_test ? "http" : "https" );

-Ashley

On Mar 26, 2008, at 1:13 PM, Dustin Suchter wrote:

> Let's say I want to send people back and forth between an HTTP  
> connection and an HTTPS connection on a server based on some  
> action. For example, clicking on a "logout" button from within my  
> application while connected via HTTPS does something like:
>
> $c->res->redirect("http://foo.com/");
>
> The above seems like a fine solution except it totally disregards  
> the beauty of uri_for, which I would love to be using for stuff  
> like this. Without uri_for, problems arise when you do things like  
> test via the built in Perl webserver (the one running on port 3000  
> by default) while on the same webserver as my "production"  
> application.
>
> So the real question is, how do I properly refer to my webserver  
> and/or application root and include port or SSL flags? I guess I'm  
> looking for something like $0 within uri_for.
>
> -d
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/ 
> catalyst at lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/




More information about the Catalyst mailing list