賢明な方: 構築中の Web アプリケーションで、まだ深刻な問題が発生しています。APACHE 2 Web サーバーを使用しています。localhost で test.html をクリックすると、.html ファイル内で JavaScript を実行するテスト ボタンがポップアップ表示されます。
test.html は次のとおりです。
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc() {
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
var str, fileNameVar;
fileNameVar = "hello";
if (xmlhttp.readyState==4 && xmlhttp.status==200){
str = xmlhttp.responseText;
alert(str);
}
}
xmlhttp.open('GET', 'try.pl?name=fileNameVar' + encodeURIComponent(fileNameVar),false);
xmlhttp.send();
}
</script>
</head>
<body>
<h2>Example</h2></div>
<button type="button" onclick="loadXMLDoc()">test</button>
</body>
</html>
この Web アプリは、以前は perl スクリプトを呼び出してその戻り値を出力するときに機能していましたが、今回は、javascript から perl スクリプト [try.pl] にパラメーターを渡そうとしています。ご覧のとおり、文字列または整数を保持する変数 fileNameVar を渡そうとしています。
これが私の perl スクリプト、try.pl です。
#!C:/indigoampp/perl-5.12.1/bin/perl.exe
use CGI;
use strict;
use warnings;
my $cgi = CGI->new;
my $name = $cgi->param('name');
print "Content-type: text/plain\n\n";
print "$name";
そのため、Web アプリでボタンが押されると、"hello" という単語を含むユーザーへのアラートが作成されるだけです。
ただし、ボタンを押しても何も起こりません。他の人でもうまくいくように見えるので、自分が何を間違っているのかわかりません。基本的に、私の Web アプリは動作しますが、javascript から perl スクリプトに変数を渡す機能を追加したいと考えています。
注: GET ステートメントで「hello」を直接渡したくありません。fileNameVar に保存されているものは何でも渡したいです。ただし、この例では、fileNameVar は「hello」に設定されています。助けてくれてありがとう!