CGI脚本问题

时间:2016-12-08 22:24:54

标签: javascript html ajax perl cgi

用户必须在文本字段中键入一些文本,该字段在我的HTML中声明为表单。一些JavaScript代码打印用户的输入,该输入已由CGI脚本处理。

的JavaScript

function xmlHttpPost(strURL) {var xmlHttpReq;
// Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
    }
// IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.timeout = 0;
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-    urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
            updatepage(xmlHttpReq.responseText);
        }
    }
    var form = document.forms['f1'];
    var query = form.word.value;
    xmlHttpReq.send("key=" + query);
}

function updatepage(str){
    document.getElementById("result").innerHTML = "Result:" + "<br/>" + str;
}

CGI

#!"G:\xampp\perl\bin\perl.exe"

use CGI;

$query = new CGI;
$key = $query->param('key');
print $query->header;
print "<h1>The key is $key</h1>"

当我在表单中输入内容并提交数据时,会出现错误500:

  

标题前的脚本输出结束:ajax-echo.cgi

这就是Apache的error.log所说的

  

AH01215:无法在G:/xampp/cgi-bin/ajax-echo.cgi第7行找到位于@INC(@INC包含:。)的CGI.pm. \ r \ n,referer:http://localhost/ajax.html?word=test
  AH01215:BEGIN失败 - 编译在G:/xampp/cgi-bin/ajax-echo.cgi第7行中止。\ r,referer:http://localhost/ajax.html?word=test

我的USB记忆棒上安装了新安装和配置的XAMPP。它拥有正常运行所需的所有权限。

1 个答案:

答案 0 :(得分:1)

错误消息的重要部分是:

Can't locate CGI.pm in @INC (@INC contains: .)

模块的搜索路径只包含当前目录“。”显然当前目录中没有CGI.pm。

尝试找到安装CGI.pm的目录,然后将此行添加到Apache配置

SetEnv PERL5LIB "G:/xampp/path/to/module/directory"