我使用POST方法發送ajax XMLHttpRequest。發送請求時,我得到一個狀態爲12030的readyState。我知道12030是一個Microsoft特定的狀態碼,表示連接沒有持續。但是,我似乎無法找到我的代碼會導致此錯誤。如果我在不使用ajax請求的情況下導航到頁面,它會正常加載。以下是javascript方法和呼叫線。AJAX狀態12030
AJAX方法
/*Sends ajax request with post data that updates the content view via ajax on completion
* @param message : message after completion of ajax request
* @param url : url to request
* @param params : post parameters as string
*/
function changeAjaxPost(message, url, params) {
var ajx;
if (window.HXMLHttpRequest) {
UtilLogger.log(HtmlLogger.FINE, "Using XMLHttpRequest");
ajx = new XMLHttpRequest();
}
else {
UtilLogger.log(HtmlLogger.FINE, "Using ActiveXObject");
ajx = new ActiveXObject("Microsoft.XMLHTTP");
}
ajx.open("POST", url, true);
ajx.setRequestHeader("X-Requested-With", "XMLHttpRequest");
ajx.setRequestHeader("Content-Type", "text/html");
ajx.setRequestHeader("Content-length", params.length);
ajx.setRequestHeader("Connection", "close");
ajx.send(params);
ajx.onreadystatechange = function() {
document.write(ajx.readyState + ":" + ajx.status);
if (ajx.readyState == 4 && ajx.status == 200) {
alert(message);
updateContent();
}
else if (ajx.readyState == 4 && ajx.status == 400) {
alert("Page Error. Please refresh and try again.");
}
else if (ajx.readyState == 4 && ajx.status == 500) {
alert("Server Error. Please refresh and try again.");
}
}
}
呼叫熱線
changeAjaxPost("Excerpt Saved", "./AJAX/myadditions_content.aspx", params);
我確實不明白爲什麼人們仍然使用普通的JS來做Ajax。 jQuery將簡化你的生活! http://api.jquery.com/jQuery.ajax/ – Dutchie432 2012-04-25 15:33:15
你會不斷地或隨機地得到這個ajax錯誤嗎? ajax通話需要多長時間? – 2012-04-25 15:36:06
@ Dutchie432這並不總是一種選擇。公司可以授權它(discovercard.com很長一段時間),或者你可能正在開發一個框架不可知的庫。 – 2012-04-25 15:47:45