Domanda

Sto cercando di rendere JSON Risposta per l'applicazione Android.

Ecco il codice

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

Il codice sopra sta funzionando bene.Ma quando aggiungo il seguente codice non genera alcuna risposta.

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

Voglio ottenere lo stesso risultato che può essere raggiunto dal codice followin.

header('TOKEN:abc');
.

Non posso usare il metodo header() nel mio codice.

È stato utile?

Soluzione

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

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

Assicurati di non chiudere l'applicazione nel componente, o non avrà la possibilità di inviarli.

Se lo fai, dovrai scaricare manualmente le intestazioni:

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

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

Nota:

Se la pagina è stata richiesta con ?format=json, non è necessario configurare JDocument come applicazione ha utilizzato JDocumentJson con mime e charset corretti.

Suggerimento:

Check out com_ajax che assiste inCostruire risposte JSON e gestire le eccezioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top