[Dancer-users] Problem with Dancer::Plugin::Ajax under Plack

Oliver Gorwits oliver at cpan.org
Sun Jan 29 23:13:10 CET 2012

> 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,


More information about the Dancer-users mailing list