我正在尝试为Android应用程序制作json响应。
这是代码
$document =& JFactory::getDocument();
$document->setMimeEncoding('application/json');
$document->setCharset('utf-8');
上面的代码工作正常。但是当我添加以下代码时,它不会产生任何响应。
$temp['TOKEN'] = "abc";
$document->setHeadData($temp);
我希望通过以下代码获得相同的结果。
header('TOKEN:abc');
我无法在代码中使用header()
方法。
答案 0 :(得分:9)
// For Joomla 2.5 - 4.0 (deprecated)
JResponse::setHeader('token', 'ABC');
// For Joomla 3.1+ (recommended)
$app = JFactory::getApplication();
$app->setHeader('token', 'ABC');
请确保您没有关闭组件中的应用程序,否则它将无法发送这些应用程序。
如果这样做,您将不得不手动清除标题:
// For Joomla 2.5 - 4.0 (deprecated)
JResponse::sendHeaders();
JFactory::getApplication()->close();
// For Joomla 3.1+ (recommended)
$app->sendHeaders();
$app->close();
注意:
如果已使用?format=json
请求了该页面,则您不必设置JDocument
,因为应用程序已使用JDocumentJson
使用了正确的mime和charset。
提示:
查看com_ajax
,这有助于构建JSON响应和处理异常。