我有一个用 Javascript 编写的 100% 有效的 Ajax 模型,其中包含我使用的一些输入,Get 或 Post 方法、要与之通信的页面、要发送到该页面的字符串以及我自己页面上的什么元素我可能会在什么时候摆弄我收到我的回复。问题是,如果我将请求设置为异步(因此是 Ajax),IE 在 onreadystatechange 事件中返回错误“完成此操作所需的数据尚不可用”,我所做的只是检查 readystate 是否为 4 和状态为 200。在 Firefox 或 Chrome 中不会出现错误,因为 Ajax 是异步的。
这是 Post 方法的一个片段
xmlhttp.open("POST", commPage, true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
j = xmlhttp.responseText;
i.innerHTML = j;
}
}
xmlhttp.send(str);
编辑:我应该指出,在 IE 中,我使用的是 ActiveX Control -> Msxml2.XMLHTTP 或 Microsoft.XMLHTTP 或先返回 true 的。