cakePHP3でajaxを使用したいのですが、PHP側のコントローラで$this->autoRender = falseに しなければ500エラーになってしまいます。
echo '文字列';
$this->response->body('文字列');
のように、テンプレートを使わず何か文字列やjsonを返したいだけの場合はこれで良いのですが、
テンプレートを使用して、そのレンダリング結果のhtmlをjs側で受け取りたい場合に対応できず困っています。
(
}).done(function (data, status, jqXHR) { $('セレクタ').html(data); })
のように、画面の一部を取得したhtmlで入れ替える場合。
ちなみに、
$this->viewBuilder()->setLayout(false);
により、デフォルトのレイアウトは使わない形としています
)
ajaxではなくそのコントローラに直接urlでアクセスした場合には正常に画面が表示されており、phpのシンタックス等で問題はないはずなのですが、
ajaxの場合は何故か、
$this->autoRender = falseにしない = 500エラー
という図式が消えないようで困っています。
同じような現象に遭われた方はいらっしゃいますでしょうか。
ちなみに、cakePHP3.6.7 です
あなたの回答
tips
プレビュー