Javascript 为什么我的form post函数会打开我的.pl文件而不是执行它?

Javascript 为什么我的form post函数会打开我的.pl文件而不是执行它?,javascript,html,forms,perl,svg,Javascript,Html,Forms,Perl,Svg,我有一个PERLscript download.pl,当按下按钮时应该执行它。它用于下载SVG 但当按下按钮时,网站会向我显示perl脚本的内容,而不是执行它。这是为什么?我该如何修复它 当我按下按钮时,会调用此代码: function callOnButtonClick(){ var svg = document.getElementById("mainSVG"); // Extract the data as SVG text string

我有一个
PERL
script 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>

这是web服务器的配置问题。它似乎没有意识到它应该执行perl脚本并返回响应,而不仅仅是提供文件


查看web服务器的文档,了解如何将其配置为执行perl脚本,或者发布有关服务器的更多信息,以及如果您已经配置了服务器但它不工作,您尝试了什么。

这是web服务器的配置问题。它似乎没有意识到它应该执行perl脚本并返回响应,而不仅仅是提供文件

请查看web服务器的文档,了解如何将其配置为执行perl脚本,或者发布有关服务器的更多信息,以及如果已经配置了服务器但无法运行,您尝试了哪些操作。

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

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

AddHandler cgi script.cgi.pl
选项如下SymLinks+Execgi
不允许超限
编辑您的httpd.conf。 你应该用下面的替换你的零件。将X替换为您的目录

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

AddHandler cgi script.cgi.pl
选项如下SymLinks+Execgi
不允许超限

您有这两行吗?AddHandler cgi script.cgi.pl选项位于SymLinks+ExecGino之后我没有这些选项?他们应该在哪里?很抱歉,我知道的不多,我对使用perl很陌生。它在httpd.conf中,请参见下面的答案。Djizeus的回答已经为你指出了正确的方向,如果你没有得到他,那么你可能应该先阅读文档。你有这两行吗?AddHandler cgi script.cgi.pl选项位于SymLinks+ExecGino之后我没有这些选项?他们应该在哪里?很抱歉,我知道的不多,我对使用perl很陌生。它在httpd.conf中,请参见下面的答案。Djizeus的回答已经为你指明了正确的方向,如果你没有得到他,那么你可能应该先阅读文档。非常感谢。我想我必须更改文件的标题。当前它有以下内容:
#/usr/bin/env perl=pod
=pod
在另一行。是的,相应地更改cgi bin目录,并确保您对cgi bin目录和cgi脚本具有读写递归权限。非常感谢。我想我必须更改文件的标题。当前它有以下内容:
#/usr/bin/env perl=pod
=pod
位于另一行。是的,相应地更改cgi bin目录,并确保您对cgi bin目录和cgi脚本具有读写递归权限。