CakePHP2.4以降からjsonp出力がサポートされたのでやってみる。
// コントローラー内のメソッド
public function index {
// 出力したいデータ
$result = ['hoge', 'piyo', 'fuga'];
$this->viewClass = 'Json';
$this->set([
'result' => $result,
'_serialize' => ['result'],
// 下記変数をセットすると出力がjsonpになる。
'_jsonp' => true
]);
}
呼び出しの際は、上記メソッドにアクセスし、クエリストリングで「?callback=functionName」を渡す。
※functionNameは任意の関数名。
これでレスポンスヘッダの「Content-Type」も「application/Javascript:」になってくれる。