我有以下通用 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";
?>
我已经测试了函数输入(除法,参数和文件),这些都可以。此功能以前在一个单独的项目中工作。