2012-03-24 12 views
7

Estoy usando el nuevo CakePHP 2.1 y me gustaría usar el JsonView para hacer que mi controlador responda a una solicitud ajax creada por JQuery en el lado del cliente. Sin embargo, esto debe hacerse automáticamente con JsonView de acuerdo con la documentación.Cakephp JsonView

http://book.cakephp.org/2.0/en/views/json-and-xml-views.html

I añadido esta línea en mi archivo routes.php

Router::parseExtensions('json');

Y en mi controlador tengo

$this->RequestHandler->setContent('json', 'application/json'); 
$bookings = $this->Bookings->find('all'); 

$this->set('bookings', $bookings); 
$this->set('_serialize', 'bookings'); 

A continuación, la vista debe ser obsoleta, pero cuando Yo llamo a esto, todavía sirve una página que apunta a una vista que falta.

+0

@BenjaminAllison: Esta pregunta se migró de WebApps.SE hace casi 2 semanas. Mi comentario ahora es irrelevante y lo eliminaré. – dnbrv

+1

también, como referencia, creo que debería ser '$ this-> set ('_ serialize', array ('reservas'));' para evitar raíces múltiples (vea el documento actualizado en este) – mark

+1

No estoy seguro pero creo que falta algo -> el atributo $ viewClass en el Controlador. http://book.cakephp.org/2.0/en/appendices/new-features-in-cakephp-2-1.html#jsonview – raultm

Respuesta

5

¿Está realizando la solicitud con el encabezado application/json?

Intente realizar una solicitud a /controller/method.json Esto debería forzar la vista. Si eso funciona, entonces sus encabezados probablemente no estén configurados correctamente.

1

¿Ha creado el archivo de vista dentro de /views/controller_name/json/action.ctp?