Perl Catalyst Catalyst :: Controller :: REST with HTML

时间:2014-06-29 15:36:03

标签: perl catalyst

尝试在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吗?

1 个答案:

答案 0 :(得分:0)

如果你想要返回的只是一些HTML准备注入你的页面,你可能也会通过尝试使用REST来使它过于复杂。

我会尝试将其配置为常规操作BEGIN { extends 'Catalyst::Controller' },只需切换到模板并移除$self->status_ok()电话即可查看您获得的内容。

这肯定是我构建了返回模板输出的Catalyst AJAX调用。