使用 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}
我正在尝试使用催化剂处理 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}