У меня странная проблема, когда IE8 запускает readyState 4 три или четыре раза по запросу ajax. Это случается часто, но не всегда, и только для нескольких конкретных ссылок - остальные мои ссылки ajax в порядке. Мой объект создания и обработчик onreadystatechange являются основными, то есть.
function ajaxPost(params) {
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
} catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert('Unsupported Browser');
}
}
}
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
// Do something
}
}
xmlHttp.open("POST", path_to_script);
xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
xmlHttp.setRequestHeader("Cache-Control", "must-revalidate");
xmlHttp.send(params);
}
Не уверен, что это актуально - но в тех местах, где возникает проблема, пользователь уже перемещался по интерфейсу ajax. Они щелкнули несколько других ссылок ajax без перезагрузки страницы - каждая ссылка использует новый объект xmlHttpRequest с тем же именем глобальной переменной (xmlHttp), но каждый запрос ajax завершается, прежде чем может быть выполнен другой. Нужно ли делать какую-либо «очистку» или что-то для IE8? Такого никогда не было, используя Safari, Firefox, Chrome или любой другой браузер.
Любое понимание будет высоко ценится.
Спасибо, Брайан