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