2016-09-01 8 views
1

私は昔ながらのJSONを返すようにしようとしていますが、何らかの理由で、それは次のように返されている:私は現在、応答を送信するためにCakePHPを使用していますCakePhpはjsonと一緒にHTMLタグとBODYタグを返していますか?

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

は:

/** 
* @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タグを取得し、レスポンスを解析不能にしています。

アイデア?

+0

'echo json_encode($ this-> messages)の結果はどうでしたか? die(); '? – Sherif

+0

全く同じことです。 @Sherif – jrquick

+0

フルコントローラ機能を投稿してもらえますか? –

答えて

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)); 
} 

参考に。 Sending correct JSON content type for CakePHP

関連する問題