Pergunta

Eu estou tentando fazer a resposta json para android do aplicativo.

Aqui está o código

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

O código acima está funcionando bem.mas quando eu adicionar o código a seguir não gera qualquer resposta.

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

Eu quero obter o mesmo resultado que pode ser obtido pela seguinte código.

header('TOKEN:abc');

Eu não posso usar o header() método no meu código.

Foi útil?

Solução

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

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

Apenas certifique-se você não fechar o aplicativo no componente, ou ele não terá a oportunidade de enviar estes.

Se você fizer isso, você vai ter que liberar os cabeçalhos manualmente:

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

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

Nota:

Se a página tiver sido solicitado, com o ?format=json, você não tem que configurar o JDocument como o aplicativo tem usado JDocumentJson com mime adequado e conjunto de caracteres.

Dica:

Confira com_ajax que auxilia na construção de respostas JSON e tratamento de exceções.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top