AJAX через XML не работает в Chrome / Firefox - PullRequest
1 голос
/ 15 мая 2011

У меня есть следующий код:

var xmlCurr = new ActiveXObject("Microsoft.XMLDOM");
xmlCurr.async = false;
xmlCurr.load(xmlURL);
return xmlCurr;

Из xmlCurr мне нужна следующая информация

xmlCurr.xml
xmlCurr.documentElement
xmlCurr.selectSingleNode("result").text;

Этот код хорошо работает в IE6 +, но не работает в Chrome или Firefox.

Я попытался адаптировать код из http://www.w3schools.com/Xml/xml_parser.asp

Чтобы получить что-то вроде следующего:

if (window.XMLHttpRequest)
    {// code for IE7+, Firefox, Chrome, Opera, Safari
     xmlCurr=new XMLHttpRequest();
    }
else
    {// code for IE6, IE5
       xmlCurr=new ActiveXObject("Microsoft.XMLHTTP");
    }
xmlCurr.open("GET",xmlURL,false);
xmlCurr.send();
xmlCurr.xml=xmlCurr.responseXML;
return xmlCurr;

Но безрезультатно ... У кого-нибудь есть идеи?

Обновление:

Кажется, мой код вообще не запускает AJAX.

The responseText = "\ r \ n"
StatusText = "OK"
Я не знаю, как определить тип MIME. но responseXML.xml = ""

Обновление:

Спасибо abieganski за предложение от http://xkr.us/code/javascript/XHConn/ Пришлось немного подправить, но теперь оно почти работает ...

  1. По какой-то причине - я думаю, как устроен мой веб-сайт - Мне пришлось изменить функцию на синхронную, а не на асинхронную с функцией обратного вызова

  2. Я не понимаю, почему, но я получил ответный текст, но не ответный XML. Поэтому selectSingleNode не будет работать. Поэтому мне пришлось написать грязный кусок кода вместо selectSingleNode

    function selectSingleNode2(aXML,aNode) {
      aNode=aNode.substr(2,aNode.length-2);
      var b1=aXML.indexOf("<"+aNode+">")+aNode.length+2;
      var b2=aXML.indexOf("</"+aNode+">");
      var b3=aXML.substr(b1,b2-b1);
      return b3; 
    }
    

Есть идеи, почему? Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 мая 2011

Я бы использовал что-то, что абстрагирует различия между IE и другими браузерами в отношении объекта XMLHTTP.

Что-то простое было бы: http://xkr.us/code/javascript/XHConn/

Или вы можете использовать jjuery-метод ajax.

0 голосов
/ 15 мая 2011

может быть вам нужно посмотреть на xmlCurr.responseText?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...