Я новичок на этом форуме. Это мой первый вопрос.
У меня есть nginx-server + fcgiwrapper, настроенный для запуска программ по запросу пользователя (без PHP).
Для тестирования у меня есть простой сценарий bash, который отображает переменные среды и устанавливает два файла cookie, второй сценарий bash печатает «Hello World» как text / plain, а другой сценарий bash печатает «Hello World» как text / html.
Другая программа, написанная на C, должна читать текст из stdin, анализировать его и печатать текст на основе ввода в stdout, который должен отображаться как text / plain в запрашивающем веб-браузере. (запрашивающий браузер должен использовать POST).
Однако иногда он отображает возвращенный текст как «текст / простой» (что он должен делать), но иногда браузер хочет загрузить возвращенный текст, как если бы это было «приложение / октет-поток».
Но, если я тестирую C-программу в подготовленной среде
Environment Variables:
CONTENT_LENGTH=30
REQUEST_METHOD=POST
HTTP_COOKIE=NAME=TEST; ID=200
он работает каждый раз, ошибок не показывает и вначале печатает:
Content-type: text/plain (plus two newlines)
Я обнаружил, что в зависимости от длины содержимого это иногда работает, а иногда нет. (Это происходит только тогда, когда программа запускается через веб-браузер.) В Firefox, используя инструменты разработчика, я мог видеть, что ответы Content-type были
application/octet-stream
и если я сохраню его, это окажется текстовый файл, содержащий текст, который должен был отображаться непосредственно в браузере. Что я делаю неправильно?
Изменить: я уже безуспешно искал похожие проблемы + все остальное работает отлично + Это также происходит с разными браузерами (Epiphany, lynx, internet explorer в Windows)
Content-type: text/html
, она будет работать. Но я хочуContent-type: text/plain
! - person Cdrmoi   schedule 27.05.2015default_type text/plain
в nginx.conf), ошибка все равно останется. Но, если я загляну в загруженный документ, там есть управляющие символы, которых там не должно быть:^Q or (iso) DC1
. Может в этом проблема? Извлечение из nginx.conf:include /etc/nginx/mime.types; #default_type application/octet-stream; default_type text/plain;
Или мне нужно добавитьtext/plain
в mime.types? - person Cdrmoi   schedule 28.05.2015Content-type: text/plain
, напечатанную C-программой. - person Cdrmoi   schedule 28.05.2015