コードは、以下のようにいくつかのチュートリアルから変更されています。
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フォルダーに移動しました...