We solved it by manually checking in is_ajax if the unparsed raw env variable exists. This fix will be available in the next release.

I think your solution is better: parsing the headers at the proper time.

Would you be so kind as to provide a patch? I would really appreciate it!

On Mon, Jan 30, 2012 at 12:13 AM, Oliver Gorwits <oliver@cpan.org> wrote:
> Unfortunately, the "ajax" route is not recognised and it gives me a 404
>
> However I find that when I add
>
> Dancer::Handler->init_request_headers($env); in the sub, the Ajax
> route works fine. Dancer::Handler docs are not available and I need to
> understand why this works
>
> Would appreciate if someone could explain

Routes configured with the Ajax Plugin's "ajax" helper will only match
when the "X-Requested-With" HTTP Header is present and has the value
"XMLHttpRequest" (i.e. it's an AJAX request).

You can see this in the app's console log... the route appears to be found
successfully but then is  rejected because of the missing X-Requested-With
HTTP Header. Another way to see the problem is to configure a 'before'
hook sub which calls Data::Dumper::Dumper on Dancer's request() object -
you'll see the HTTP Headers value is undef.

By adding the init_request_headers() call you're fixing this problem, and
the Headers are correctly parsed and made available to Dancer's request
object, so your route is now accepted.

I hope that makes sense,

regards,
oliver.

_______________________________________________
Dancer-users mailing list
Dancer-users@perldancer.org
http://www.backup-manager.org/cgi-bin/listinfo/dancer-users