Сначала я сделал бы обратное, когда звоню.
try {
AJAX = new ActiveXObject("Microsoft.XMLHTTP"); // Try Internet Explorer
}
catch(e) // Failure then it is something else.
{
AJAX = new XMLHttpRequest();
}
Тогда я бы также изменил способ, которым вы получаете ответ, потому что вы хотите readyState и статус, а не или, как вы это выразили.
AJAX.onreadystatechange = function()
{
var xhrdata = "";
if(AJAX.readyState == 4)
{
if(AJAX.status == 200)
xhrdata = AJAX.responseText;
else
xhrdata = AJAX.status;
}
};
Вы можете также попробовать поставить попыткуи catch (e) для отправки сообщения об ошибке сервера.вы также можете заменить xhrdata функцией обратного вызова.