如何在Perl中接收和响应Ajax请求?

时间:2010-04-06 19:40:09

标签: ajax perl cgi xmlhttprequest fastcgi

我有一个客户端应用程序,它通过AJAX POST请求(request.open("POST", url, flag))向我的Perl CGI脚本提交一些数据。

如何使用Perl检索此数据并返回其他一些数据(AJAX响应)?

4 个答案:

答案 0 :(得分:4)

与处理任何POST请求的方式相同。您需要url处的CGI脚本接收POST并返回JavaScript所期望的任何内容。与普通HTML表单POST的唯一区别是您将接收和传输的Content-Type。

答案 1 :(得分:2)

使用核心CGI模块。 E.g。

use strict;
use warnings;

use CGI;

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

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

如果您的应用程序庞大而复杂,您可能需要调查其中一个Perl Web应用程序框架,例如CGI::ApplicationCatalyst

答案 2 :(得分:0)

CGI脚本的基本模型是“从STDIN读取,写入STDOUT”。在输入阶段,环境变量CONTENT_LENGTH给出了从STDIN读取内容的字节长度。在输出阶段,您还需要发送基本的HTTP标头,其中最简单的是一行“内容类型”,其中包含mime类型,如text/htmltext/plain等,另外还有一个空白行:

 Content-Type: text/plain

 <your data starts here>

对于XMLHttpRequest,您可以完全控制数据的格式,因此解析STDIN输入的方式取决于您。同样地,你可以躺在mime类型中,并发送任何你想要的响应。

JSON是一种很好的格式,用于将数据从Perl发送到JavaScript。

答案 3 :(得分:-1)

 use CGI;
 my $q = CGI->new;
 my $xml = $q->param('POSTDATA');