我使用PHP +捲曲在我的行動之一,從服務器獲取數據。然後我從我的動作中返回數據作爲json。Symfony的行動JSON響應
我的動作是這樣的
public function executeTest(sfWebRequest $request)
{
$json = $this->getServerResponse(); // fetches data using CURL
$this->getResponse()->setContentType('text/json');
return $this->renderText($json);
}
當執行上述動作,所接收的JSON strng是(例如):
{ 'OK':真} 1
如果我改變的最後一行在動作上面 回報$這個 - > renderText(「富」);
返回的JSON是:
{ 'OK':真正}富
如果我改變上面 回報在行動的最後一行$這個 - > renderText( '' );
返回的JSON是:
{ 'OK':真正}
我的問題是:
爲什麼被一起顯示來自服務器的JSON數據與我的renderText()方法中的文本?
在哪裏「1」追加到JSON數據來自何處?
如何解決/解決這個問題?
我正在運行的Symfony 1.4.x版在Ubuntu
嗯,我不是專家,但我知道renderText追加其傳遞的值到任何現有的響應內容,而不是取代它,所以它幾乎看起來好像JSON已經存在於你的sfResponse現有的內容,和你」重新添加$ json到它,$ json不是你所期望的。我們可能需要查看getServerResponse()的來源來弄清楚發生了什麼...... –
@Matt - 我認爲你在正確的軌道上。看起來'getServerResponse'函數設置了響應文本,然後返回true。這說明了附加'1'(渲染真實顯示爲1),字符串foo和空字符串。所有這些都被追加。 @OP - 你應該真的獲得getServerResponse來返回響應,而不是設置它,然後返回true。 –
@Blair是的,這是有道理的。 –