【发布时间】:2013-08-27 04:17:49
【问题描述】:
我已经使用 cakephp 设置了我的第一个基于 API 的系统。我已经在浏览器中进行了设置,例如:domain.com/cms/blogs 返回 JSON 如下:
[{"id":"2","name":"Sample News Item 002","slug":
等
但是,一旦我通过 AJAX 调用相同的 URL,代码就会出现
{"blogs":[{"id":"2","name":"Sample News Item 002","slug": 等
我假设这是因为在我看来我已将代码设置为
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);
}
谢谢
【问题讨论】:
-
你能把你的控制器代码放上去吗
-
是的,已添加。谢谢你