Catalyst::View::JSONでJSONPからの~jQuery.ajax。
 2013年2月16日
普段JSONPを使う機会があまりないので、すぐ忘れますw
 毎回ぐぐるのもあれなんでメモ程度に。
C::Plugin::ConfigLoaderで読まれるファイルに、allow_callbackを追加。
View::JSON: expose_stash: json_data allow_callback: 1
Controllerは、jsonの時と同じ。
sub hoge : Local {
  my ($self,$c) = @_;
  $c->stash->{'json_data'} = { 'key' => 'value' };
}
sub end : private {
  my ($self,$c) = @_;
  if ( $c->stash->{'json'} ) {
    $c->forward('View::JSON');
    return 1;
  }
  # 通常の処理
  # Xslateにforwardするとか。
}
で、jQueryで呼ぶ。
function foo () {
    $.ajax({
        type: "POST",
        url: "http://www.myapp.com/hoge",
        data: "user=1111&name=aaaa",
        dataType: "jsonp",
        jsonp: "callback",
        success: function(data) {
            // 何か処理
        }
    });
}
jsonの時と違うのは、dataTypeと、jsonp。
 dataTypeは、jsonpを指定。
 jsonpは、コールバック時の関数名。
 (Catalyst::View::JSONのdefaultがcallbackだったので合わせてあります)
ちなみに、C::V::JSONのコールバック関数はcallback_paramで変更できるみたいです。
View::JSON: expose_stash: json_data allow_callback: 1 callback_param: result