[dancer-users] return redirect vs return

Sawyer X xsawyerx at gmail.com
Fri Mar 20 16:42:43 GMT 2015


You're quoting Dancer 1 so I'm assuming you use this.

Dancer2 exits the sub for you when you "redirect", so it's not required to
put the "return" statement with it.

On Wed, Mar 18, 2015 at 12:33 PM, Tiago Quintela <kintela at gmail.com> wrote:

> Hi,
>
>
> http://search.cpan.org/~yanick/Dancer-1.3134/lib/Dancer.pm#redirect
>
> "Generates an HTTP redirect (302)."
>
> I believe the RFC2616 doesn’t forbid message-body on 300-ish routes so
> that’s probably why:
>
> "Redirection is deferred until after the current route or filter has been
> processed."
>
>
> So, if you:
>
>
> redirect ‘/someroute’ if $something;
>
> return $content;
>
> "means": issue a http 302 to ‘/someroute’ w/ $content as message body.
>
>
> and,
>
>
> return redirect '‘/someroute’ if $something
>
> “means": issue a http 302 to ‘/someroute’ and w/o message-body
>
>
> cheers,
>
> Tiago
>
> On 18 March 2015 at 07:08, Pedro Melo <melo at simplicidade.org> wrote:
>
>> Writing this from memory, but redirect doesn't abort the current request
>> processing, so you need to return redirect on all places.
>>
>> Sent from my iPhone
>>
>> > On 17/03/2015, at 23:46, David H <untg99 at gmail.com> wrote:
>> >
>> > So I had this question and I couldn't find any answer, since the two
>> options were giving me confusion. I wanted t pass control off to another
>> route if a certain action happened.
>> >
>> > I had this in a route:
>> > if ($actionHappened) {
>> >    redirect '/CheckOffOrderItem/';
>> > }
>> >
>> > and it was working fine, it would pass control off to that route and
>> then any return would go to the page and return what I wanted.
>> >
>> > I then went to add another line for something else below this one
>> > if ($theOtherThingHappened) {
>> >  redirect '/CheckOffProduct/'
>> > }
>> >
>> > and it worked, about twice, then stopped working and wouldn't process
>> the redirect, it would get to the condition and go through but just skip
>> processing the route and continue with the existing route, so I read
>> somewhere that "return redirect" should be used and not "redirect" when
>> redirecting.
>> >
>> > Is this true? and why?
>> > My top one is still working and hasn't stopped but I want to know what
>> the logic behind these two are. When I changed the second one to 'return
>> redirect' it started working again.
>> >
>> > Thanks,
>> >
>> > David Hancock
>> > _______________________________________________
>> > dancer-users mailing list
>> > dancer-users at dancer.pm
>> > http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
>> _______________________________________________
>> dancer-users mailing list
>> dancer-users at dancer.pm
>> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
>>
>
>
>
> --
> Tiago Quintela
>
> _______________________________________________
> dancer-users mailing list
> dancer-users at dancer.pm
> http://lists.preshweb.co.uk/mailman/listinfo/dancer-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.preshweb.co.uk/pipermail/dancer-users/attachments/20150320/d4a87e86/attachment.html>


More information about the dancer-users mailing list