2014-01-09 45 views
5

我試圖爲android應用程序做出json響應。如何在Joomla中添加自定義標題數據

這裏是上面的代碼工作正常的代碼

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

。但是當我添加下面的代碼時,它不會生成任何響應。

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

我想得到相同的結果,可以通過以下代碼來實現。

header('TOKEN:abc'); 

我不能在我的代碼中使用header()方法。

回答

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(); 

注:

如果頁面已經被要求與​​,你不必成立JDocument作爲應用程序使用JDocumentJson與適當的啞劇和字符集。

提示:

退房com_ajax這有助於建立JSON響應和處理異常。

相關問題