У меня в приложении есть запрос ajax, который возвращает объект json:

public function getCustomerTransactions($customerid = null) { $this-{amp}gt;viewBuilder()-{amp}gt;setLayout(false); $this-{amp}gt;autoRender = false; $selectedCustomerCompany = $this-{amp}gt;request-{amp}gt;getData('customer'); $selectedCustomer = TableRegistry::get('Customers')-{amp}gt;find('all', [ 'conditions' ={amp}gt; ['Customers.company LIKE '={amp}gt; $selectedCustomerCompany] ])-{amp}gt;first(); $customerTransactions = TableRegistry::get('Transactions')-{amp}gt;find('all', [ 'conditions' ={amp}gt; ['customer_id '={amp}gt; $selectedCustomer-{amp}gt;id, 'transaction_type_id ' ={amp}gt; 1, 'invoice_id IS NULL']//, ]); echo json_encode($customerTransactions); } 

Но вместо 19 transactions он возвращает 11, а затем это сообщение (я вижу это на вкладке сети):

Предупреждение (512): невозможно выдать заголовки. Заголовки отправляются в файле = / var / www / vhosts / domain / public_html / demo / app / src / Controller / InvoicesController.php line = 508 [ CORE / src / Http / ResponseEmitter.php , строка 48 ] Контекст 0000BB"{amp}gt;

style = «color: # 007700″{amp}gt; if (0000BB «{amp}gt; Configure :: read 007700″{amp}gt; (‘debug’)) {

class = «code-highlight»{amp}gt; 0000BB"{amp}gt; trigger_error

style = «color: # 007700″{amp}gt; (0000BB «{amp}gt; $ message, E_USER_WARNING);

стиль = «цвет:

007700 «{amp}gt;} else {

нет; «{amp}gt; $ response = object (Cake Http Response) {

‘status’ ={amp}gt; (int) 200, ‘contentType’ ={amp}gt; ‘text / html’, ‘headers’ ={amp}gt; [‘Content-Type’ ={amp}gt; [[максимальная достигнутая глубина]]], ‘file’ ={amp}gt; null, ‘fileRange’ ={amp}gt; [], ‘cookies’ ={amp}gt; объект (Cake Http Cookie CookieCollection) {}, ‘cacheDirectives’ ={amp}gt; [], ‘body’ ={amp}gt; »

} $ maxBufferLength = (int) 8192 $ file = ‘/var/www/vhosts/domain/public_html/demo/app/src/Controller/InvoicesController.php’ $ line = (int) 508 $ message = ‘Невозможно выдать заголовки , Заголовки отправляются в файле = / var / www / vhosts / domain / public_html / demo / app / src / Controller / InvoicesController.php line = 508’Cake Http ResponseEmitter :: emit () — CORE / src / Http / ResponseEmitter. php, строка 48 Cake Http Server :: emit () — CORE / src / Http / Server.php, строка 141

Итак, я получаю эту ошибку JavaScript:

Uncaught SyntaxError: неожиданный токен {amp}lt;в JSON в позиции 6922

Потому что в ответе есть HTML-код.

Я попытался установить параметр глубины в json_encode но я получаю те же результаты.

ОБНОВИТЬ

Я закончил тем, что использовал:

 if($this-{amp}gt;request-{amp}gt;is('ajax')){ Configure::write('debug', 0); } 

В контроллере. Но так ли это?