Приветствую всех, кто заглянул.
Есть файл ../api/index.php, его вызываю с js по средствам XMLHttpRequest.
В файле api я вызываю http запрос стороннего сервиса и возвращаю тело ответа. Если запрос вылетает по времени, то возвращаю строку '{"header": {"status": 503,"error": "service unavailable"}}'
Для вывода ответа я использую print_r($result,true);
Только вот проблема. Когда со стороннего сервиса приходит ответ вовремя, то print_r работает хорошо, а когда я хочу вернуть вышеуказанную строку JSON с ошибкой 503, то на стороне клиента (JS) приходит пустая строка.
А если пользоваться не print_r, а echo, тогда вывод просто строки работает корректно, а JSON ответ стороннего сервиса выводится с "1" на конце.
Я с этим боролся как раз подставив true во второй параметр функции print_r.
Сторонним сервисом я называю сервер БД, php у нас просто как шлюз для прямого взаимодействия с клиентом. В общем для безопасности и чтобы не нагружать сервер БД огромным кол-вом сеансов и т п.
Версия PHP 8.1
Вот упрощенный код в файле api:
$ch = curl_init('serverDB.com/ping');
curl_setopt($ch, CURLOPT_TIMEOUT, 2);//TODO: delete after debug
$result = curl_errno($ch) ? '{"header": {"status": 503,"error": "service unavailable"}}' : curl_exec($ch);
curl_close($ch);
print_r($result,true);