0

コードは、以下のようにいくつかのチュートリアルから変更されています。

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" .   
}

はい、ガー、その通りです、ありがとう。私はApacheを使用しており、あなたが言ったようにhttpd.confのハンドラー行を変更しました(コメントを外して.plを追加します)。問題は解決したようですが、別のエラーが発生しました: POST http: //localhost/get_data.pl 403 (Forbidden)

get_data.pl を htdocs フォルダーに配置し、セキュリティ オプション (OS Win7) が既に実行権限に設定されています。では、なぜ禁止されているのに、もう一度助けていただけますか? はい、コマンド ラインからエラーなしで .pl を実行しました。通常、.pl は「htdocs」との兄弟フォルダーである cgi-bin フォルダーに配置されます。.pl を /cgi-bin に置き、URL を "../cgi-bin/get_data.pl" に変更すると、サーバーがファイルを見つけられなかったと思われるエラー 500 が表示されました。httpd.confで見逃した他の構成はありますか?とにかく、エラー500を回避するためにhtdocsフォルダーに移動しました...

4

1 に答える 1