对于我的 Ajax 调用,我创建了一个 xmlhttp 对象。当我“打开”它时,我猜它确实打开了,但它永远不会进入xmlhttp.readyState == 4 && xmlhttp.status == 200
状态。我尝试使用运行隐藏页面window.open
,它没有显示错误。
以前我确实在另一个页面上使用了 AJAX,它工作得很好。我确实认为该xmlhttp
请求确实打开了,因为document.getElementById('Approval' + id).innerHTML = 'Loading...';
确实有效,但它根本没有进入xmlhttp.readyState == 4 && xmlhttp.status == 200
状态。
相反,在它显示“正在加载...”后不久,我将其设计为显示(这是不正常的,因为隐藏页面发送通常需要很长时间的电子邮件),它显示了以前的文本。我以前没有遇到过这种情况。
下面是我的代码
var xmlhttp;
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 () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById('Approval' + id).innerHTML = xmlhttp.responseText;
//alert(xmlhttp.responseText);
}
else {
document.getElementById('Approval' + id).innerHTML = 'Loading...';
}
}
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", data.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.open("GET", "AJAX%20pages/UploadDecisionAbsenceRequest.aspx?decision=" + decision + '&position=' + position + '&id=' + id, true);
xmlhttp.send();
//window.open("AJAX%20pages/UploadDecisionAbsenceRequest.aspx?decision=" + decision + '&position=' + position + '&id=' + id,'','width=200, height = 100');
同样在我尝试了解 xmlhttp 请求的状态之后,通过编写这行代码:
document.getElementById('Approval' + id).innerHTML = "Now (readystate) " + xmlhttp.readystate + " and status " + xmlhttp.status;
我得到的只是现在(就绪状态)未定义和状态 0,从那里它没有进一步发展。