にreadyStateの4またはステータス200を返したことがない私は、次の一般的なAjaxの機能を持っている:PHPは、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;
}
}
をブラウザでI私が期待したように複数の "ok"アラートを得ることはできますが、ifステートメントのステートメントは決して起動しません。私はPHPが状態の更新を返すことを意味するが、何らかの理由でreadyコードを返すことはない。それがどうして起こるかわかりません。
誰でも私が準備完了コードを受け取らない理由を教えてもらえますか?
PHP自体は問題ではありません。
<?php
echo "new";
?>
私は、関数の入力(divIdは、パラメータやファイル)をテストしており、これらはOKです。 この機能は以前は別々のプロジェクトで動作していました。
したがって、状態3になるだけですか? 'readyState'の異なる値を検査してください... –
@Felix Kingがそれをテストしました。それは状態4に達しますが、その直後に状態は404に戻ります。 – YsoL8
'status'も調べてください。多分あなたは404を手に入れているでしょう。編集:そこに行きます。 –