2013-02-19 24 views
0

我無法通過ajax執行perl。 爲什麼responseText總是返回整個Perl代碼?爲什麼我的ajax無法執行perl

以下示例是從perl獲取數據。我從函數updateTime得到的響應是整個Perl代碼。

順便說一句:我可以使用命令「c:/ perl/bin/perl test.cgi」在cmd窗口中執行perl代碼。

JS代碼是如下:

function updateTime(){ 

var xmlhttp_t = createXMLHTTPRequest(); 
xmlhttp_t.open("GET","cgi-bin/test.cgi",false); 
xmlhttp_t.send(); 
if(xmlhttp_t.readyState == 4){ 
    return xmlhttp_t.responseText; 
} 
} 

// 
//Get XMLHttpRequest 
// 
function createXMLHTTPRequest(){ 
var xhr_object = null; 
if(window.XMLHttpRequest) 
{ 
    xhr_object = new XMLHttpRequest(); 
} 
else if(window.ActiveXOject) 
{ 
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
else 
{ 
    alert("Your browser doesn't provide XMLHttpRequest functionality"); 
    return; 
} 
return xhr_object; 
} 

Perl的代碼是如下:

#!c:/perl/bin/perl 

use strict; 
use CGI; 
use warnings; 

my $cgi = new CGI(); 
print $cgi->header('text/html; charset=UTF-8'); 

print "aaaa"; 
+2

你必須設置你的服務器能夠運行Perl腳本 – Musa 2013-02-19 06:04:21

+0

@Musa謝謝你的提醒。那是真實的。因爲我在cgi-bin文件夾外運行.cgi文件,我需要添加一個文件.htaccess,其中包含兩行「AddHandler cgi-script .cgi .pl Options + ExecCGI」。 – Ellen 2013-02-19 06:45:28

回答

3

我從功能註冊得到的響應是整個Perl代碼。

然後這是一個服務器配置問題。

Documentation for Apache

+0

謝謝@ikegami,.htaccess文件真的有幫助! – Ellen 2013-02-19 06:47:16

相關問題