Решил я получать данные через javascript напрямую с сервера.
Поднял на левом порту (допустим 8080) сервер nodejs, который по запросу на определённый урл отдаёт данные в json. Проверил: в браузере открывается, всё работает.
Пишу html-страницу, вставляю код клиента - не выходит каменный цветок. Статус = 0.
Гуглю. Этот статус возникает, когда идёт ?междоменный запрос? - то есть запрос к другому домену.
Выясняю, что в понятие ?домена? у браузера входит протокол (http и https - разные протоколы) и порт... Упс...
Ладно, думаю, отдам данные через php-страничку. Пишу echo json_encode($data); - открывается в браузере, но как-то не так, без кодировки (utf-8).
Пытаюсь передать данные в тестовую страничку - не взлетает. Мучаюсь, мучаюсь...
Затем решаю попробовать. В nginx прописываю на этот урл редирект на левый порт через proxy_pass - всё взлетает, данные получены.
И всё бы хорошо, но есть мнение, что реальный сайт будет крутиться на https и поднимать на хостинге nodejs не самая хорошая идея.
В общем вопрос: как правильно передать данные в json с помощью php?
Заранее спасибо.
P.S. Есть мнение, что php-страница некорректно передаёт заголовки. Точнее, она их вообще не передаёт.