我试图找出为什么我没有看到 $.post("/url/", {wtf: 2}) 的参数。
我正在使用这个 perl:
use strict;
use CGI;
my $cgi = new CGI;
print $cgi->header("text/javascript");
print "'no'";
use Data::Dumper;
warn Dumper({ (map {$_=>$cgi->param($_ )} $cgi->param), postdata=>$cgi->param("POSTDATA") });
当我发出 $.get("/url", {wtf: 2}) 时,我得到了我期望并找到的结果 wtf 在日志中是 2。当我使用 $.post("/url/", {wtf: 2}) 时,我似乎没有 获取任何参数(只是日志中的 $VAR1 = { postdata=>undef } )。
我错过了什么?
Firebug 显示:Transfer-Encoding 已“分块”,Content-Type 为“application/x-www-form-urlencoded;charset=UTF-8”。此外,“Post”选项卡似乎显示了请求中的参数,但没有来自 CGI 的任何乐趣。
最佳答案
可能您的结果既没有返回 application/x-www-form-urlencoded 也没有返回 multipart/form-data。 CGI doc对此有这样的说法:
If POSTed data is not of type application/x-www-form-urlencoded or multipart/form-data, then the POSTed data will not be processed, but instead be returned as-is in a parameter named POSTDATA. To retrieve it, use code like this:
my $data = $query->param('POSTDATA');
关于jquery - 为什么这个 jQuery.post 不能与 Perl CGI 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/583701/