我已经使用 cakephp 设置了我的第一个基于 API 的系统。我已经在浏览器中进行了设置,例如: domain.com/cms/blogs 返回 JSON 如下:
[{"id":"2","name":"示例新闻项目 002","slug":
ETC
但是,一旦我通过 AJAX 调用相同的 URL,代码就会出现
{"blogs":[{"id":"2","name":"Sample News Item 002","slug":
ETC
我假设这是因为在我看来我已将代码设置为
echo json_encode($blogs);
但是当它通过 JAX 调用时,它会使用不同的视图吗?这是正确的,如果是这样,解决方案是什么,所以 ajax 返回与我的浏览器视图相同?
我只是尝试在app/View/Blogs/json/index.ctp中添加相同的视图代码( echo json_encode($blogs);),但似乎没有什么不同。
// 控制器代码
public function index($slug = NULL)
{
$this->layout = null;
$this->response->type('json');
$cond = array('Blog.online' => 1);
if(isset($slug))
{
$cond[] = array('Blog.slug' => $slug);
$this->set('slug', $slug);
}
$blogs = $this->Blog->find('all', array('conditions' => $cond));
$blogs = Set::extract('/Blog/.', $blogs);
$this->set(array(
'blogs' => $blogs,
'_serialize' => array('blogs')
));
return json_encode($blogs);
}
谢谢