Ваша функция loadXMLDoc () ничего не возвращает, добавьте «return true» в конец этой функции.
xmlHttp.send(params);
return true;
}
Обратите внимание, что истинное возвращение loadXMLDoc () означает, что вы успешно запустили AJAX-запрос. Это закончится через некоторое время в будущем, что приведет к вызову onreadystatechange. Таким образом, вы запускаете несколько запросов AJAX параллельно.
Если вы хотите последовательно выполнить несколько вызовов AJAX, попробуйте что-то вроде следующего:
function doAjaxRequest( url, onreadystatechange )
{
var xmlHttp;
try {
xmlHttp=new XMLHttpRequest();
} catch (e) {
try {
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange = onreadystatechange;
var params = "dd=123";
xmlHttp.open("POST", url, true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(params);
}
function loadXMLDocs( HTTP )
{
var loadNextFile = function() {
if (HTTP.length != 0) {
var url = HTTP.unshift();
doAjaxRequest( url, onreadystatechange );
}
}
var onreadystatechange = function() {
if (this.readyState==4) {
alert(xmlHttp.responseText);
loadNextFile();
}
}
loadNextFile();
}
loadXMLDocs( ['Page1.asp', 'Page2.asp', 'Page3.asp'] );