开发者

AJAX via XML doesn't work in Chrome/Firefox

I have the following code:

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

From xmlCurr I need the following information

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

This code works well on IE6+, but does not work on Chrome or Firefox.

I have tried adapting code from http://www.w3schools.com/Xml/xml_parser.asp

To get something like the following:

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;

But to no avail... Does anyone have any ideas?

Update:

My code does not seem to run the AJAX at all.

The responseText = "\r\n"

The statusText="OK"

I do not know how to determine the MIME type. but the responseXML.xml=""

Update:

Thank you to abieganski for the suggestion from http://xkr.us/code/javascript/XHConn/ I had to do a little tweaking, but it is now almost working...

  1. For some reason - I think the way my website is designed -I had to change the function to be synchronou开发者_如何学Cs as opposed to asynchronous with a callback function

  2. I don't understand why but I got responseText back but not responseXML. Therefore selectSingleNode wouldn't work. Therefore I had to write a dirty piece of code instead of 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; 
    }
    

Any ideas why? Thank you!


may be you need to look at xmlCurr.responseText ?


I'd use something that abstracts the differences between IE and other browsers regarding the XMLHTTP object away.

Something simple would be: http://xkr.us/code/javascript/XHConn/

Or you could use jQuery's ajax method.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜