XMLHTTP请求不会到达xmlhttp.readyState == 4 && xmlhttp.status == 200状态
对于我的Ajax调用,我创建了一个xmlhttp对象。当我“打开”它,我想它确实打开,但它永远不会到达xmlhttp.readyState == 4 && xmlhttp.status == 200
状态。我尝试使用window.open
运行隐藏页面,并且显示没有错误。XMLHTTP请求不会到达xmlhttp.readyState == 4 && xmlhttp.status == 200状态
以前我在另一个页面上使用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;
所有我得到的是现在(的readyState)未定义和状态0,并从那里没有进一步。
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
在打开请求前无法使用。此后检查天气data.length是否正确。
使用
xmlhttp.open("GET", "AJAX%20pages/UploadDecisionAbsenceRequest.aspx?decision=" + decision + '&position=' + position + '&id=' + id, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", data.length);
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send();
好吧,请忘记xmlhttp.setRequestHeader(“Content-type”,“application/x-www-form-urlencoded”); xmlhttp.setRequestHeader(“Content-length”,data.length); xmlhttp.setRequestHeader(“Connection”,“close”); ,因为没有,它仍然无法正常工作... –
@TTANTruong,你可以检查萤火虫/铬检查器,它试图访问的网址是什么。最可能的问题将与网址。我可以在你的网址中看到%。希望它是正确的。 –
我没有得到它尝试打开的URL,并在新窗口中打开它,它工作:( –
为什么你不能使用jQuery? –
我该怎么做? –