Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.08.2011, 10:14
Новичок на форуме
Отправить личное сообщение для AsAn74 Посмотреть профиль Найти все сообщения от AsAn74
 
Регистрация: 15.08.2011
Сообщений: 2

Не работает responseText в ИЕ
В ИЕ (7-8) возвращается системная ошибка при попытке асинхронного обращения к серверу. Другие версии ИЕ не пробовал. В остальных браузрах всё нормально. Ошибка, сообщаемая ИЕ на скриншоте

Код (строка с ошибкой if(xmlhttp.responseText=='error')):
<script type="text/javascript">
    function getXmlHttp()
    {
        var xmlhttp;
        try
        {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e)
        {
            try
            {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e)
            {
                xmlhttp = false;
            }
        }
        if (!xmlhttp && typeof XMLHttpRequest!='undefined')
        {
            xmlhttp = new XMLHttpRequest();
        }
        return xmlhttp;
    }
    function checkName(name)
    {
        var xmlhttp = getXmlHttp()
        xmlhttp.open('GET', '/chkname.php?name='+name, true);
        xmlhttp.onreadystatechange = function()
        {
            if(xmlhttp.readyState == 4)
            {
                if(xmlhttp.status == 200)
                {
                    if(xmlhttp.responseText=='error')
                    {
                        document.getElementById('pass').style.display='block';
                        document.post.submit.disabled=true;
                        document.getElementById('name').innerHTML=name;
                    }
                    else
                    {
                        document.getElementById('pass').style.display='none';
                        document.post.submit.disabled=false;
                    }
                }
            }
        };
        xmlhttp.send(null);
    }
    function chkPass(pass)
    {
        if(pass.length>=4)
        {
            document.post.submit.disabled=false;
        }
    }
</script>

Похоже, что ошибку вызывает свойство responseText, но не могу понять почему. Подскажите, пожалуйста, если кто знает.
Ответить с цитированием
  #2 (permalink)  
Старый 15.08.2011, 10:22
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

может не стоит юзать
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
оно устарело уже
Ответить с цитированием
  #3 (permalink)  
Старый 15.08.2011, 10:37
Новичок на форуме
Отправить личное сообщение для AsAn74 Посмотреть профиль Найти все сообщения от AsAn74
 
Регистрация: 15.08.2011
Сообщений: 2

devote, спасибо.
Заменил на
new ActiveXObject("Msxml2.XMLHTTP.6.0")

и всё заработало.
Ответить с цитированием
  #4 (permalink)  
Старый 15.08.2011, 10:40
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

достаточно просто использовать :
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

а браузер сам выберет последнюю версию библы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не работает код внутри циклов DZHETIGAPA Events/DOM/Window 1 21.06.2011 01:03
JS работает в Опере, Хроме и Сафари, и не работает в IE & Mozilla Aliena Javascript под браузер 5 04.12.2010 08:15
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32