CakePhp возвращает теги HTML и BODY вместе с json?

Я пытаюсь вернуть старый добрый JSON, но по какой-то причине он возвращается так:

<html>
<body>
{
"token":"MTEyLSQyeSQxMCRHVS9nS2t2QVRVcGpJWjJGVERldXouWWJFTzgyZ0lCTURBZFIvdWs2RldGNm1IeWxxNGpTUw==",
"user":{
"id":112,
"username":"admin",
"firstName":"admin",
"lastName":"admin",
},
"userType":{
"id":1,
"name":"admin"}
}
</body>
</html>

В настоящее время я использую CakePHP для отправки ответа:

/**
* @param $controller \App\Controller\AppController
*/
public function respond($controller) {
$controller->response->header('Content-Type: application/json');
$controller->response->statusCode($this->statusCode);
$controller->response->body(json_encode($this->messages));
}

Но я также пытался использовать простой PHP:

echo json_encode($this->messages);
die();

HTML-теги не являются проблемой для моего интерфейса, они, похоже, игнорируются javascript. Но по какой-то причине TestNG получает теги HTML и делает ответ не разбираемым.

Есть идеи?

1

Решение

Используйте этот код, чтобы получить ответ Json:

public function respond($controller) {
$controller->autoRender = false;
$this->response->type('json');
$controller->response->statusCode($this->statusCode);
$controller->response->body(json_encode($this->messages));
}

Ссылка Отправка правильного типа контента JSON для CakePHP

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]