Php ZF2:仅为Ajax调用返回JSON
我正在努力学习ZF2。我有一个使用Ajax获取数据的页面。ZF2函数应该返回一个JSON字符串Php ZF2:仅为Ajax调用返回JSON,php,zend-framework2,Php,Zend Framework2,我正在努力学习ZF2。我有一个使用Ajax获取数据的页面。ZF2函数应该返回一个JSON字符串 <?php namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; use Zend\View\Model\JsonModel; class DocumentsController extends AbstractAct
<?php
namespace Application\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use Zend\View\Model\JsonModel;
class DocumentsController extends AbstractActionController {
public function indexAction() {
}
public function getTreeDataAction() {
$json = new JsonModel(array(
'title' => 'Some Title'
));
return $json;
}
}
我一直在搜索这个错误以及在ZF2中进行ajax调用的最佳方法,但是ZF1或ZF2 Beta的结果不断出现并且不起作用。谢谢你给我的建议 嗯,这个错误几乎意味着它试图访问默认的渲染策略,这很奇怪。。。您是否已将JsonStrategy添加到视图管理器中
//module.config.php
return array(
'view_manager' => array(
'strategies' => array(
'ViewJsonStrategy',
),
),
)
此外,最好将ajax调用中的正确accept头设置为仅接受
application/json
content-type。有了这一套,它实际上应该可以工作。不过出于好奇,modules/\uuuuuu NAMESPACE\uuuu/view/\uuuu NAMESPACE\uuuu/documents/get tree data.phtml
是否存在?尝试类似的方法
$response = $this->getResponse();
$response->setStatusCode(200);
$jsonArray = {.....}
$response->setBody($jsonArray);
return $response;
还要确保将ViewJsonStrategy添加到模块配置中。谢谢,我真不敢相信我错过了Rob Allen的DevNotes中的这一部分。是的,我有get-tree-data.phtml,但是对于JsonModel,它没有查找它。冒着先令的风险,我有一些代码来帮助使用zf2的ajax请求:。它有三个新的抽象控制器用于处理jsonRest、jsonRPC和jsonp请求。
$response = $this->getResponse();
$response->setStatusCode(200);
$jsonArray = {.....}
$response->setBody($jsonArray);
return $response;