Нов съм в този форум. Това е първият ми въпрос.
Имам nginx-сървър + fcgiwrapper, настроен да изпълнява програми по заявка на потребител (без PHP).
За тестване имам прост bash скрипт, който показва променливите на средата и задава две бисквитки, вторият bash скрипт отпечатва "Hello World" като текст/обикновен, а друг bash скрипт отпечатва "Hello World" като текст/html.
Друга програма, написана на C, трябва да чете текст от stdin, да го анализира и да отпечатва текст, базиран на входа към stdout, който трябва да се показва като текст/обикновен в търсещия уеб браузър. (заявяващият браузър трябва да използва POST).
Въпреки това понякога той показва върнатия текст като "text/plain" (което трябва да направи), но понякога браузърът иска да изтегли върнатия текст, сякаш е "application/octet-stream".
Но ако тествам 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