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:」になってくれる。