私は次の一般的なAjax関数を持っています:
//run post request
function ajaxPost (divid, parameters, file) {
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() {
alert ("ok")
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
alert ("ready");
alert (xmlhttp.responseText);
divid.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST", file,true);
//Send the proper header information along with the request
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", parameters.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(parameters);
}
問題は、このセクションが期待どおりに機能しないことです。
xmlhttp.onreadystatechange=function() {
alert ("ok")
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
alert ("ready");
alert (xmlhttp.responseText);
divid.innerHTML=xmlhttp.responseText;
}
}
ブラウザでは、期待どおりに複数の「ok」アラートが表示されますが、ifステートメントのステートメントは起動しません。私はこれを、phpが状態の更新を返しているが、何らかの理由で準備ができたコードを返さないことを意味すると解釈します。それがどのように起こり得るか-私にはわかりません。
準備ができたコードを受け取れない理由を誰かに教えてもらえますか?
PHP自体は問題ではありません:
<?php
echo "new";
?>
関数入力(除算、パラメーター、ファイル)をテストしましたが、これらは問題ありません。この関数は、以前は別のプロジェクトで機能していました。