简单的Javascript http请求代码段但不起作用

时间:2013-09-16 15:50:14

标签: perl apache cgi

代码是从以下一些教程修改的:

xmlhttp=new XMLHttpRequest();
var url = "get_data.pl";    
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.onreadystatechange = function() {
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        alert(xmlhttp.responseText);
    }
}
xmlhttp.send(null);

我想让get_data.pl脚本执行并返回运行结果(打印一个字符串“test”),但我只在xmlhttp.responseText中获得get_data.pl的所有行。我应该怎么做?

get_data.pl如下:

#!C:/Perl/bin/perl.exe
use strict;
use warnings;

&main;

sub main()
{   
print "test";// I'd like the script being executed by Perl interpreter and return the string "test" .   
}

是的,Gar,你是对的,谢谢。我正在使用Apache,我修改了httpd.conf的处理程序行(取消注释并添加.pl)。现在这个问题似乎已经解决,但我又遇到了另一个         POST http://localhost/get_data.pl 403(Forbidden)

我将get_data.pl放在htdocs文件夹中,安全选项(OS Win7)已经设置为执行权限。那么为什么被禁止你能帮我一次吗? 是的我从命令行运行.pl并且没有错误。 通常.pl被放在cgi-bin文件夹中,这是一个带有“htdocs”的兄弟文件夹。 当我把.pl在/ cgi-bin和修改后的url放到“../cgi-bin/get_data.pl”时,我得到一个错误500,我猜服务器没找到该文件。那么我在httpd.conf中遗漏的任何其他配置?无论如何,我把它移动到htdocs文件夹以避免错误500 ...

1 个答案:

答案 0 :(得分:1)

请确保您在http服务器中为.pl文件添加了处理程序。