【发布时间】:2014-01-17 12:30:00
【问题描述】:
我知道有很多关于 json 的问题,但他们没有回答我的问题(或者我找不到任何对我有帮助的东西)。 向我发送数据的 Symfony2 控制器的一部分。
return $this->createResponse(array(
'result' => $users
));
die();
}
/**
* Interni pomocna funkce na vytvareni json odpovedi
* @param unknown $array
* @return \Symfony\Component\HttpFoundation\Response
*/
protected function createResponse($array = array()) {
return new Response(
json_encode($array),
200,
array(
header('Content-type: application/json')
)
);
}
获取 JSON 数据的 Javascript 函数。
function getUsers(date_from, date_to) {
alert(date_from+" "+date_to);
var url = "{{ path('vetkomdochazkaBundle_apiGetUsers') }}";
$.post(url, JSON.stringify([date_from,date_to]), function(data) {
markUsers(data['result']);
}, 'json');
};
在本地主机(wamp 服务器)上一切正常,我获取数据并解析它,以便我可以将它用作数组。但是当我在 php5.3 服务器上运行它时,我得到了正确的数据(我可以用 JSON.stringify 编写它),但我不能像在 localhost 上那样使用它们(我不能使用 alert(data['result' ]),它只写对象Object。
我做错了什么?
【问题讨论】:
-
data包含什么,console.log(data);做过吗? -
console.log 在本地主机上显示与警报相同的数据,但我更改了 cyclus markUsers 功能,它现在也在服务器上工作。我使用 for (key in users) 而不是 for(index = 0; index
-
我知道这对你的问题没有帮助,但是从 Symfony 的 2.1 版开始,有一个名为 JsonResponse 的类。您应该能够以这种方式返回您的响应:return new JsonResponse($array);
-
header() function 不返回任何内容。您的
array(header('Content-type: application/json'))很可能是错误的。 -
@Alvaro:你说得对,这绝对是他的问题。
标签: javascript php json parsing symfony