Первый вариант. Считаю, что этот вариант самый правильный
Самое простое - заменить подключение 
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
на
<?
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
В этом случае - ядро будет подключено (соответственно, $APPLICATION будет доступен) , но html-лэйаут не будет выводиться. 
Второй вариант. 
Перед вызовом компонента сделать
$APPLICATION->RestartBuffer();
Это почти как ob_start(), только через Api битрикса. 
В обоих случаях подключать файл с футером не нужно. 
Ну и 
header('Content-Type: application/json'); вставить не помешает