Ajax XMLHTTP请求不';t访问xmlhttp.readyState==4&&;xmlhttp.status==200状态

Ajax XMLHTTP请求不';t访问xmlhttp.readyState==4&&;xmlhttp.status==200状态,ajax,xmlhttprequest,Ajax,Xmlhttprequest,对于Ajax调用,我创建了一个xmlhttp对象。当我“打开”它时,我猜它确实打开了,但它从未到达xmlhttp.readyState==4&&xmlhttp.status==200状态。我已尝试使用窗口运行隐藏页面。打开后,它不会显示任何错误 之前我在另一个页面上使用了AJAX,它工作得很好。我确实认为xmlhttp请求确实是打开的,因为document.getElementById('Approval'+id.).innerHTML='Loading…'确实可以工作,但它根本无法到达xmlh

对于Ajax调用,我创建了一个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");
在打开请求之前无法使用。然后检查天气数据。长度是否正确

使用

在打开请求之前无法使用。然后检查天气数据。长度是否正确

使用


好的,请忘记xmlhttp.setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);setRequestHeader(“内容长度”,data.length);setRequestHeader(“连接”,“关闭”);因为如果没有这些,它仍然无法工作…@Thaotroong,你能在firebug/chrome检查器中检查一下,它试图访问的url是什么吗。最可能的问题是url。我可以在你的url中看到%。希望它是正确的。我确实得到了它试图打开的url,并在一个新窗口中打开它,它成功了:(好的,请忘记xmlhttp.setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);xmlhttp.setRequestHeader(“内容长度”,data.length);xmlhttp.setRequestHeader(“连接”,“关闭”);因为没有这一点,它仍然无法工作…@Thaotroong,你能在firebug/chrome Inspector中检查一下它试图访问的url是什么吗?最有可能的问题是url。我可以在你的url中看到一个%。希望它是正确的。我得到了它试图打开的url,并在一个新窗口中打开它,它成功了:(
    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();