【发布时间】:2019-05-12 07:35:11
【问题描述】:
您可以使用以下代码在 CGI 脚本中获取查询参数:
#!C:\Perl64\bin\perl.exe
use CGI;
my $cgi = CGI->new();
my $file = $cgi->param( "file" );
print "Content-Type: text/plain\n\n";
my $text = do {
open(my $f, "<:encoding(UTF-8)", $file)
or die("Can't open \$filename\": $!\n");
local $/;
<$f>
};
print $text;
但如果请求是 POST,这不起作用,我正在使用 fetch API 发送此请求:
await fetch('cgi-bin/script.pl?file=..\foo.php', {
method: 'POST',
body: 'Some Text'
}).then(r => r.text());
如果我在浏览器中打开脚本,我会得到文件的内容。有没有办法告诉 CGI 模块从 QueryString 而不是 POST 数据中获取参数?或任何其他在 Perl 中解析没有 CGI 模块的查询字符串的原始方法?
【问题讨论】:
-
$cgi->url_param('file')perldoc.perl.org/CGI.html#MIXING-POST-AND-URL-PARAMETERS -
@ernix 谢谢,您可以将其添加为答案。
标签: perl post cgi query-string