Question

J'essaie de faire une réponse json pour l'application Android.

Voici le code

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

Le code ci-dessus fonctionne bien.mais lorsque j'ajoute le code suivant, il ne génère aucune réponse.

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

Je veux obtenir le même résultat qui peut être obtenu en suivant le code.

header('TOKEN:abc');

Je ne peux pas utiliser le header() méthode dans mon code.

Était-ce utile?

La solution

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

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

Assurez-vous simplement de ne pas fermer l'application dans le composant, sinon elle n'aura pas la possibilité de les envoyer.

Si vous le faites, vous devrez vider les en-têtes manuellement :

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

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

Note:

Si la page a été demandée avec le ?format=json, vous n'avez pas besoin de configurer le JDocument comme l'application l'a utilisé JDocumentJson avec un mime et un jeu de caractères appropriés.

Conseil:

Vérifier com_ajax qui aide à créer des réponses JSON et à gérer les exceptions.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top