尝试在Catalyst中使用REST服务。
我可以使用JSON发回回复,但是,如果我想要呈现HTML模板,我该怎么做呢?我有:
package MM::Controller::User::Test;
use Moose;
use namespace::autoclean;
BEGIN { extends 'Catalyst::Controller::REST' }
sub thing : Local : ActionClass('REST') { }
sub thing_GET {
my ( $self, $c ) = @_;
# Return a 200 OK, with the data in entity
# serialized in the body
$c->{stash}->{template} = "a.tt";
$self->status_ok(
$c,
entity => {
some => 'data',
foo => 'is real bar-y',
},
);
}
1;
我的jQuery:
$(document).ready(function() {
$.ajax({
type : "GET",
url : "/user/test/thing",
data : {},
dataType: "html",
success : function(data, textStatus) {
console.log(data);
}
});
});
如果dataType为" json"完美(对象{foo:"是真正的bar-y",有些:"数据"}),但是,我如何让Catalyst返回一些HTML,以便jQuery可以放置它。我获得了#34; 415(不支持的媒体类型)"信息。我只是没有正确使用REST吗?
答案 0 :(得分:0)
如果你想要返回的只是一些HTML准备注入你的页面,你可能也会通过尝试使用REST来使它过于复杂。
我会尝试将其配置为常规操作BEGIN { extends 'Catalyst::Controller' }
,只需切换到模板并移除$self->status_ok()
电话即可查看您获得的内容。
这肯定是我构建了返回模板输出的Catalyst AJAX调用。