クエリ文字列を要求元のajaxオブジェクトに戻すために、c++を使用してcgi-scriptを作成しました。また、cgiスクリプトが正しく機能するかどうかを確認するために、ファイルにクエリ文字列を書き込みます。しかし、HTMLドキュメントで応答テキストをメッセージボックスに表示するように要求すると、空白のメッセージが表示されます。
これが私のコードです:
js:
<script type = "text/javascript">
var XMLHttp;
if(navigator.appName == "Microsoft Internet Explorer") {
XMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else {
XMLHttp = new XMLHttpRequest();
}
function getresponse () {
XMLHttp.open
("GET", "http://localhost/cgi-bin/AJAXTest?" + "fname=" +
document.getElementById('fname').value + "&sname=" +
document.getElementById('sname').value,true);
XMLHttp.send(null);
}
XMLHttp.onreadystatechange=function(){
if(XMLHttp.readyState == 4)
{
document.getElementById('response_area').innerHTML += XMLHttp.readyState;
var x= XMLHttp.responseText
alert(x)
}
}
</script>
First Names(s)<input onkeydown = "javascript: getresponse ()"
id="fname" name="name"> <br>
Surname<input onkeydown = "javascript: getresponse();" id="sname">
<div id = "response_area">
</div>
C ++:
int main() {
QFile log("log.txt");
if(!log.open(QIODevice::WriteOnly | QIODevice::Text))
{
return 1;
}
QTextStream outLog(&log);
QString QUERY_STRING= getenv("QUERY_STRING");
//if(QUERY_STRING!=NULL)
//{
cout<<"Content-type: text/plain\n\n"
<<"The Query String is: "
<< QUERY_STRING.toStdString()<< "\n";
outLog<<"Content-type: text/plain\n\n"
<<"The Query String is: "
<<QUERY_STRING<<endl;
//}
return 0;
}
私は何をすべきかすべてのアドバイスに満足しています!
編集:私のログファイルへの出力はうまく機能します:
Content-type: text/plain
The Query String is: fname=hello&sname=world
IE8で開くと、クエリ文字列が表示されることに気づきました。しかし、その後の最初の「キーダウン」でのみ、IEは何もしません。