Yep, I do get the same results as you from that snippet, both accessing it as a file:// and on http://localhost. So this at least confirms that it's possible to do. Now to just figure out why CGI::Ajax isn't doing it...
Time to strip things down to a minimal failing case, I suppose.
Comment on Re^2: Submitting forms with CGI::Ajax-created fields