DEVELOPERS BLOGデベロッパーズブログ
- HOME >
- 加藤 正人のデベロッパーズブログ >
- CakePHP3 の JSON 出力でエラー
加藤 正人のデベロッパーズブログ
- 氏名
- 加藤 正人
- 役職
- 多分SE
- 血液型
- 秘密
- 出没
- 美味しいもののあるところ
- 特色
- タヒチ大好き。ちょいメタボ。
- 2020/12/15
- CakePHP3 のリダイレクトがうまく行かない例
- 2020/11/12
- Apache Bench
- 2020/10/05
- PhpSpreadsheet でExcel ファイルを読み込む (CakePHP3)
CakePHP3 のサイトで ajax 呼び出しに対するコントローラを作成し、JSON データを返す仕組みをよく使う。
これまで小さなデータを扱う際には問題なかったのだが、今回少々大きなデータを JSON 形式で返そうとしたら、受け取り側の jQuery.ajax() で fail 動作になってしまうことに気づいた。
WireShark (パケットアナライザ) でデータをチェックしてみたところ、本来の JSON データの後に余分なテキストデータが付随しており、その内容に
Warning (512): Unable to emit headers. Headers sent in file=....
という PHP の警告メッセージが格納されていた。
ネットでいろいろ調べてみた結果、
- JSON 出力は echo {JSON文字列} で行なうと、出力しようとしているデータのサイズによっては上記の問題が発生する
- echo ではなく $this->response->body({JSON文字列}); で出力することで回避可能
という事が判明した。これからは response オブジェクトを使うようにしよう。
2020/12/15
2020/11/12
2020/10/05
2020/09/11
2020/08/03