为什么我的表单发布功能会打开我的.pl文件而不是执行它?

时间:2014-04-22 12:34:43

标签: javascript html forms perl svg

我有一个PERL脚本 download.pl ,按下按钮时应执行该脚本。它用于下载SVG。

但是当按下按钮时,网站会向我显示perl脚本的内容,而不是执行它。为什么这样,我该如何解决?

当我按下按钮时,此代码就会被调用:

function callOnButtonClick(){
            var svg = document.getElementById("mainSVG");
            // Extract the data as SVG text string
            var svg_xml = (new XMLSerializer).serializeToString(svg);
            console.log(svg_xml);

            var form = document.getElementById("svgform");
            form['output_format'].value = "svg";
            form['data'].value = svg_xml ;
            form.submit();
}

这是我用来执行 download.pl 文件的表单,该文件应该启动下载。

<form id="svgform" method="post" action="download.pl">
 <input type="hidden" id="output_format" name="output_format" value="">
 <input type="hidden" id="data" name="data" value="">
</form>

2 个答案:

答案 0 :(得分:3)

这是您的Web服务器配置问题。它似乎不知道它应该执行perl脚本并返回响应,而不是仅仅提供文件。

查看您的Web服务器的文档,了解如何配置它以执行perl脚本,或者发布有关您的服务器的更多信息以及您已经配置了服务器但尝试不起作用的内容。< / p>

答案 1 :(得分:1)

编辑你的httpd.conf。 你应该用下面的部分替换你的部分。将X替换为您的目录。

<Directory "X:\webserver\cgi-bin" />
    AddHandler cgi-script .cgi .pl
    Options FollowSymLinks +ExecCGI
    AllowOverride None  
</Directory>