對於我的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,並從那裏沒有進一步。
爲什麼你不能使用jQuery? –
我該怎麼做? –