我使用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是的,这是有道理的。 –