使用 Catalyst 避免 AJAX 响应中的包装器

Avoiding wrappers in AJAX response using Catalyst

我正在尝试使用催化剂处理 AJAX 请求以解决一些动态 html 生成槽 jQuery。简而言之,我需要在用户输入时填写一个 <select> </select> 标记(通过 jQuery 以及其他一些字段创建)。为了填充这个标签,我想我可以扩展创建标签的代码块来执行一个简单的 AJAX 请求我需要的数据......像这样:

 $.post("../ajax/simple_query", 'get="family_precedents"' );

然后像往常一样使用 Catalyst::Request 在 perl 脚本上处理这个非常简单的请求。

问题是 AJAX 响应包含 Catalyst App 包装器,这让理解和使用变得非常混乱。 有什么方法可以避免使用催化剂对 AJAX 响应进行包装?

我找到了更多挖掘催化剂文档的答案。事实证明,您可以将包装器配置为有条件地出现,如下所示:

[% IF no_wrapper or template.name.match('\.(css|js|txt)');
  debug("Passing page through as text: $template.name");
  content;
 ELSE;
  debug("Applying HTML page layout wrappers to $template.name\n");
  content WRAPPER site/html + site/layout;
 END; -%]

然后发送 no_wrapper 值以及 $c->stash->{no_wrapper}

来源:http://wiki.catalystframework.org/wiki/gettingstarted/howtos/disabling_a_tt_wrapper_for_ajax_requests