解析JSON在localhost上工作但不在服务器上工作

时间:2013-12-30 15:39:15

标签: javascript php json parsing symfony

我知道有很多关于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');
};

在localhost(wamp服务器)上一切正常,我获取数据并解析它,以便我可以将它用作数组。但是当我在php5.3服务器上运行时,我得到正确的数据(我可以用JSON.stringify编写它),但是我不能像在localhost上那样使用它们(我不能使用alert(data ['result' ]),它只写对象。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

检查PHP VERSION JSON功能是否为PHP 5> = 5.2.0,

答案 1 :(得分:0)

Symfony有一个JsonResponse对象,可能会使您的代码更清洁,并可以解决您的问题。另外,取出模具

/**
 * Interni pomocna funkce na vytvareni json odpovedi
 * @param unknown $array
 * @return \Symfony\Component\HttpFoundation\JsonResponse
 */
protected function createResponse($array = array()) {
    return new JsonResponse(
        $array,
        200
    );
}

否则,您需要设置标题,如此

return new Response(
    json_encode($array),
    200,
    array('Content-type', 'application/json')
);
相关问题