Cakephp を使用して、最初の API ベースのシステムをセットアップしました。たとえば、ブラウザ内で次のように設定しました。 domain.com/cms/blogs は次のように JSON を返します。
[{"id":"2","name":"サンプル ニュース アイテム 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);
}
ありがとうございました