代码改变世界

ajax在ie浏览器中读取xml文件出错问题

2013-03-24 21:09  king0222  阅读(374)  评论(0编辑  收藏  举报

ajax在ie浏览器中读取xml文件出错问题

ie是个让人呕吐的东西,恨不得早点灭绝;

当我们在使用jquery的ajax方法去获取xml数据的时候,除了IE外,其他浏览器基本上没什么大问题,我们可以通过下面的代码轻松得到想要的数据:

 1 $.ajax({
 2           url:'xxx.xml',
 3           dataType:'xml',
 4           success:function(data){
 5             var res=$(data).find('xxx');
 6             //todo ...
 7           },
 8           error:function(error){
 9             console.log('error:'+error);
10           }
11       });

但是当我们用IE去测试结果的时候又恨不得把IE斯巴烂了。

ie浏览器不能解析xml,却将它解析为text类型的对象。因此如果不知道这一点的话,天杀啊,我们只能傻傻不知所措。所以我们需要加个dataType:'text'给它:

$.ajax({
          url:'xxx.xml',
          dataType:($.browser.msie)?'text':'xml',
          success:function(data){
            var res="";
            if($.browser.msie){
                     res = new ActiveXObject("Microsoft.XMLDOM");
                     res.async = false;
                     res.loadXML(data);
            } else {
                     res = data; 
            }
            res=$(data).find('xxx').text();
            //todo ...
          },
          error:function(error){
            console.log('error:'+error);
          }
      });

看代码吧,一看就懂。