我在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
我的行动。
答案 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);
}
注意:代码未经过测试。尝试一次,可能是你的布局或其他问题。