我在Ubuntu 16.04.1 LTS上使用Apache和mod_perl的默認安裝,我也用默認的JSON :: XS轉載了這個,我更新到了最新的CPAN JSON-XS-3.02。mod_perl下的JSON :: XS失敗,POST請求
下面的代碼適用於所有情況下,如果我不使用mod_perl。
下面的腳本和html通過mod_cgi同時使用POST和GET請求來使用perl時工作。
如果不過我使用的是mod_perl並且使用POST(如在提供的html中),它會失敗,「Hello」不會打印,並且在我的apache日誌文件中出現以下錯誤。
用法:JSON :: XS :: new(klass)。
如果我通過GET方法傳遞相同的參數,那麼腳本工作正常。
test2.pl
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use JSON::XS;
my $q = new CGI();
print $q->header(-type => 'text/plain');
my $action = $q->param('a');
my $json_str = '{"foo":"bar"}';
my $pscalar = JSON::XS->new->utf8->decode($json_str);
print "Hello";
exit 1;
HTML調用以上(在服務器上名爲test2.pl)
<html>
<body>
<form action="test2.pl" method="POST">
<input type="text" name="a"/>
<button type="submit">
</form>
</body>
</html>
沒有,做同樣的事情。 – Severun