返回的readyState 4或狀態200,我有以下通用的Ajax功能:PHP從來沒有在阿賈克斯
//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";
?>
我已經測試功能輸入(DIVID,參數和文件),這些都是確定。 此功能以前在單獨的項目中工作。
所以它只會一直持續到狀態3?檢查'readyState'的不同值... – 2010-12-14 10:19:38
@Felix King剛剛測試過。它達到狀態4,但狀態在發生後立即返回404。 – YsoL8 2010-12-14 10:23:02
還檢查'狀態'。也許你得到了404。編輯:你去了。 – 2010-12-14 10:24:24