Как мне получать и отвечать на запросы Ajax в Perl? - PullRequest
0 голосов
/ 06 апреля 2010

У меня есть клиентское приложение, которое отправляет некоторые данные через запрос AJAX POST (request.open("POST", url, flag)) в мой Perl CGI-скрипт.

Как мне получить эти данные с помощью Perl и вернуть некоторые другие данные (ответ AJAX)?

Ответы [ 4 ]

4 голосов
/ 06 апреля 2010

Так же, как вы обрабатываете любой запрос POST. Вам нужен CGI-скрипт на url, который получает POST и возвращает все, что ожидает JavaScript. Единственное отличие от обычной формы POST в HTML - это Content-Type, который вы будете получать и передавать.

2 голосов
/ 06 апреля 2010

Используйте модуль ядра CGI .Например,

use strict;
use warnings;

use CGI;

my $q = CGI->new;
my $foo = $q->param( 'foo' );

print $q->header;
print "You said $foo";

Если ваше приложение будет большим и сложным, вы можете изучить одну из платформ веб-приложений Perl, например CGI :: Application или Catalyst .

0 голосов
/ 07 апреля 2010
 use CGI;
 my $q = CGI->new;
 my $xml = $q->param('POSTDATA');
0 голосов
/ 07 апреля 2010

Базовая модель для CGI-скриптов - «читать из STDIN, писать в STDOUT». На этапе ввода переменная окружения CONTENT_LENGTH задает длину в байтах того, что следует прочитать из STDIN. На этапе вывода вам также необходимо отправить базовые заголовки HTTP, которые как минимум составляют одну строку «Content-Type» с типом mime, например text/html или text/plain и т. Д., Плюс пустую строку:

 Content-Type: text/plain

 <your data starts here>

В случае XMLHttpRequest вы полностью контролируете формат данных, поэтому выбор способа анализа входных данных из STDIN зависит от вас. Точно так же вы можете лежать в MIME-типе и отправлять в ответ все, что вы хотите.

JSON - хороший формат для отправки данных из Perl в JavaScript.

...