Hi,


V. simple app:

package MyApp;

use Dancer ':syntax';
use Dancer::Plugin::Ajax;

ajax '/hellox/:name' => sub {
    template 'hello';
};

true;

Produces:


$ curl -H 'X-Requested-With: XMLHttpRequest' http://www.myapp.new/hellox/fred

<p>This is hello</p>

Which is to be expected.

But:

package MyApp;

use Dancer ':syntax';
use Dancer::Plugin::Ajax;

ajax '/hellox/:name' => sub {
    Dancer::Config::setting('appdir',$ENV{ROOT});
    Dancer::Config::load();

    template 'hello';
};

true;

$ curl -H 'X-Requested-With: XMLHttpRequest' http://www.myapp.new/hellox/fred

Produces:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
    
<p>This is hello</p>

</body>
</html>

So, running Dancer::Config::load() stops Plugin::Ajax working.

This may seems a strange thing to do, but for me the load() was deep in a module that some times runs outside of Dancer but picks up stuff from the Dancer config. 

Handling the ajax call manually (as per the the Cookbox) there are no problems with using load().

Stephen