使用zend框架1从angular调用时获取json错误

时间:2015-08-18 12:24:11

标签: json angularjs zend-framework

我在zend行动中的代码如下:

:h c_ctrl-r_=

我的角度控制器如下:

$this->getResponse()
            ->setHeader('Content-Type', 'application/json');
$result = array("status" => true, "result" => $output);
        $json = json_encode($result);
echo $json;

当我从浏览器调用url并在Network选项卡中检查它时,结果是在json中。 但是当我从角度调用中检查它时,结果出现了这个错误:

app.controller("statController", function($scope, $http){
        $http.get("mydomain/controller/action/")
        .success(function(response) {
        console.log(response)
        }).error(function(response) {
                alert(response)
            console.log('Error : ' + response);
        });
});

我调用的url(zend控制器和动作)与我的angular.js代码不在同一个域中。我使用Zend Framework 1。

更新 我发现了这个问题。我试图从不同的域访问,所以我只需要添加

SyntaxError: JSON.parse: unexpected end of data

我的行动。

1 个答案:

答案 0 :(得分:0)

在您的操作中尝试以下代码

public function yourAction()
{
    // Disable the layout and view for the action
    $this->_helper->layout()->disableLayout();
    $this->_helper->viewRenderer->setNoRender();

    // Set the header as JSON
    header("Content-Type:application/json");

    // Your code starts here
    // .........................
    $result = array("status" => true, "result" => $output);
    $json = json_encode($result);

    echo Zend_Json::encode($json);
}

注意:代码未经过测试。尝试一次,可能是你的布局或其他问题。