Cómo agregar Encabezado personalizado de Datos en Joomla
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.
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.