我用C++編寫了一個cgi腳本來將查詢字符串返回給請求的ajax對象。 我還將查詢字符串寫入文件以查看cgi腳本是否正常工作。 但是,當我要求在HTML文檔中的迴應文本顯示在一個消息框中我收到一條空白消息。從XMLHttpRequest對象獲取responseText
這裏是我的代碼:
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打開它我得到的查詢字符串。但只有在第一次「keydown」之後,IE纔會無所作爲。
感謝您的輸入!我做了改變。但我仍然有同樣的問題。 IE8給我返回查詢字符串。但FF只是打開一個空白的消息框。你知道這可能來自哪裏嗎? – samoncode
@ Sammy46那麼現在IE在每個按鍵上都獲得文本嗎? – Passerby
是的!它實際上是獲取每個鍵上的文字。但我真的很想知道當我使用FF(版本10.0.7,如果這可以幫助?) – samoncode