У меня есть 100% действительная модель Ajax, написанная на Javascript, с несколькими входами, которые я использую: метод Get или Post, с какой страницей нужно общаться, какую строку отправлять на эту страницу и каким элементом на моей собственной странице я могу быть возиться, когда я получу свой ответ.
Проблема заключается в том, что, если я установлю запрос на асинхронный (следовательно, Ajax), IE возвращает ошибку «Данные, необходимые для выполнения этой операции, еще не доступны» в событии onreadystatechange, где все, что я делаю, проверяет, является ли состояние готовности 4 статус 200. Ошибка не появляется в Firefox или Chrome, как я ожидаю, поскольку Ajax является асинхронным.
Вот фрагмент из метода Post
xmlhttp.open("POST", commPage, true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
j = xmlhttp.responseText;
i.innerHTML = j;
}
}
xmlhttp.send(str);
Редактировать: я должен указать, что в IE я использую элемент управления ActiveX -> Msxml2.XMLHTTP или Microsoft.XMLHTTP или что-либо еще, возвращающее true первым.