!!!!!!!!не создается объект ActiveX в IE

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
yelenabun
Сообщения: 5
Зарегистрирован: 19 июл 2006, 16:03

вот код функции для создания объекта XMLHttpRequest:

Код: Выделить всё

function initRequest() {
      if (window.XMLHttpRequest) { 
          req = new XMLHttpRequest();
             alert("1req="+req);
          }
      } else if (window.ActiveXObject) {
        try {
             req = new ActiveXObject("Msxml2.XMLHTTP");
             alert("2req="+req);
        } catch (e) {
          try {
              req = new ActiveXObject("Microsoft.XMLHTTP");
              alert("3req="+req);
          } catch (e) {

          }
        }
      }
   }
выдается алерт 2req, но объект пустой. в чем дело, я уже все перепробовала, что можно. хеееееееееееелп. в мозиле все нормально
yelenabun
Сообщения: 5
Зарегистрирован: 19 июл 2006, 16:03

да, кстати, сами активиксы включены в браузере...
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

yelenabun, кто сказал, что он пустой ? ;-)
yelenabun
Сообщения: 5
Зарегистрирован: 19 июл 2006, 16:03

[quote="Oscar"]yelenabun, кто сказал, что он пустой ? ]

я просила помочь, а загадки и ребусы уже замучилась отгадывать... самый крайний случай - обратилась на форум...первый раз в жизни...ну..или второй...

короче, дело такое,
я его посылаю:

Код: Выделить всё

req.open("POST", url, true);         
req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
req.send("availableitms="+availableitms+
                     "&selecteditms="+selecteditms);
потом получаю:

Код: Выделить всё

req.onreadystatechange = function() {
               if (req.readyState == 4) {
                   if (req.status == 200) {
                       parseMessages(req.responseXML);
                   } else if (req.status == 204){
                       alert("Problem retrieving XML data");
                   }
               }
           };
проверяла:
req.responseXML - объект есть, возвращается с сервера
req.responseТext - возвращает одни теги xml-ные, а данных в них нет, что с сервера должны передаться.
допустим, я беру нужное мне значение так:

Код: Выделить всё

av = responseXML.getElementsByTagName("avail_items")[0].childNodes[i].childNodes[0].nodeValue
но в ИЕ это не работает, даже если я сделаю вот так:

Код: Выделить всё

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async="false";
      xmlDoc.load(responseXML);
пишет, что у объекта нету пропертей ... даже если я убиру какойто из childNodes....
в чем трабл, не пойму?
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

responseXML.documentElement.getElementsByTagName

http://home.in.tum.de/~skrypnyo/developing/ajax.html
yelenabun
Сообщения: 5
Зарегистрирован: 19 июл 2006, 16:03

ладно, согласна, xml-ник возвращается, но данных в нем нет, одни теги.
передаю постом

Код: Выделить всё

req.open("POST", url, true);           req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
req.send("availableitms="+availableitms+
                     "&selecteditms="+selecteditms);
на сервере элементы массива пустые (серверная часть php)

Код: Выделить всё

$availableitms = explode (",", $_POST['availableitms']);
    $selecteditms = explode (",", $_POST['selecteditms']);
выдает например

Код: Выделить всё

Array ([0]=>[1]=>)
пробовала так

Код: Выделить всё

req.setContentType('Content-Type','application/x-www-form-urlencoded');
вообще ошибка джаваскрипта
Outlook Blogger
Сообщения: 2
Зарегистрирован: 20 июл 2006, 13:33
Откуда: Москва
Контактная информация:

Какой с сервера XML возвращается?
как ты на сервере генеришь XML, покажи?
Всё об Outlook - http://www.potolook.ru
yelenabun
Сообщения: 5
Зарегистрирован: 19 июл 2006, 16:03

все, сделала, все работает...
компонент сам - мультиселект, проблема в том, что я брала значения его итемов так

Код: Выделить всё

document.getElementById('selecteditms').options[i].value;
а надо так:

Код: Выделить всё

document.getElementById('selecteditms').options[i].text;
а

Код: Выделить всё

responseXML.getElementsByTagName("avail_items")[0]
в IE работает.

Спасибо, Oscar, за помощь и участие.
dnace
Сообщения: 1
Зарегистрирован: 04 авг 2006, 14:26
Контактная информация:

новая проблемма,
сруктура вызова та же (описана вами выше), но вот при получении результата, например:

if (req.readyState == 4) {
alert(req.responseText);
}

в ИЕ выдает ошику: системная ошика: -1072896658
в мозиле и опере все работает нормально

вот образец:
http://tetis.dp.ua/shop/search155.html (при нажатии на корзину)

самое интересное что произошло после переезда на новый хостинг, на старом все работало. грешить на хостинг особенно не приходится, (хотя пытался что то править и там), ведь в других браузерах работает.

не подскажете ли в чем суть проблеммы?

похоже что с этой проблеммой столкнулся не только я, вот еще тема:

http://www.codenet.ru/webmast/js/ajax/A ... p#comments
Ответить