Я пытаюсь вернуть старый добрый 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 и делает ответ не разбираемым.
Есть идеи?
Используйте этот код, чтобы получить ответ Json:
public function respond($controller) {
$controller->autoRender = false;
$this->response->type('json');
$controller->response->statusCode($this->statusCode);
$controller->response->body(json_encode($this->messages));
}
Других решений пока нет …