Как добавить пользовательские данные заголовка в Joomla

StackOverflow https://stackoverflow.com//questions/21017154

  •  21-12-2019
  •  | 
  •  

Вопрос

Я пытаюсь сделать ответ JSON для приложения Android.

Вот код

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

Приведенный выше код работает нормально.но когда я добавляю следующий код, он не генерирует никакого ответа.

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

Я хочу получить тот же результат, которого можно достичь с помощью следующего кода.

header('TOKEN:abc');

Я не могу использовать header() метод в моем коде.

Это было полезно?

Решение

// 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 с правильными пантомимами и кодировкой.

Кончик:

Проверить com_ajax который помогает создавать ответы JSON и обрабатывать исключения.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top