Pregunta

Estoy tratando de hacer json de respuesta para la aplicación de android.

Aquí está el código

$document =& JFactory::getDocument();
$document->setMimeEncoding('application/json');
$document->setCharset('utf-8');

El código anterior funciona bien.pero cuando voy a agregar el siguiente código no genera ninguna respuesta.

$temp['TOKEN'] = "abc";
$document->setHeadData($temp);

Quiero conseguir el mismo resultado que puede conseguirse mediante el siguiente código.

header('TOKEN:abc');

No puedo utilizar el header() método en mi código.

¿Fue útil?

Solución

// For Joomla 2.5 - 4.0 (deprecated)
JResponse::setHeader('token', 'ABC');

// For Joomla 3.1+ (recommended)
$app = JFactory::getApplication();
$app->setHeader('token', 'ABC');

Sólo asegúrese de que usted no se cierre la aplicación en el componente, o no tienen la posibilidad de enviar estos.

Si lo haces, tendrás que vaciar los encabezados de forma manual:

// For Joomla 2.5 - 4.0 (deprecated)
JResponse::sendHeaders();
JFactory::getApplication()->close();

// For Joomla 3.1+ (recommended)
$app->sendHeaders();
$app->close();

Nota:

Si la página ha sido solicitada con el ?format=json, usted no tiene que configurar el JDocument como aplicación se han utilizado JDocumentJson con mime adecuado y el conjunto de caracteres.

Sugerencia:

Echa un vistazo com_ajax que ayuda en la construcción de respuestas JSON y manejo de excepciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top