如何在Joomla中添加自定义标头数据

时间:2014-01-09 10:10:01

标签: json joomla joomla3.0

我正在尝试为Android应用程序制作json响应。

这是代码

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

上面的代码工作正常。但是当我添加以下代码时,它不会产生任何响应。

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

我希望通过以下代码获得相同的结果。

header('TOKEN:abc');

我无法在代码中使用header()方法。

1 个答案:

答案 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响应和处理异常。