我有一个客户端应用程序,它通过AJAX POST请求(request.open("POST", url, flag)
)向我的Perl CGI脚本提交一些数据。
如何使用Perl检索此数据并返回其他一些数据(AJAX响应)?
答案 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::Application或Catalyst。
答案 2 :(得分:0)
CGI脚本的基本模型是“从STDIN读取,写入STDOUT”。在输入阶段,环境变量CONTENT_LENGTH
给出了从STDIN
读取内容的字节长度。在输出阶段,您还需要发送基本的HTTP标头,其中最简单的是一行“内容类型”,其中包含mime类型,如text/html
或text/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');