`
tonysmith
  • 浏览: 175009 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jQuery的Ajax传送xml 中<![CDATA] 在不同浏览器上的兼容性问题

阅读更多

这几天开发项目,在UI上遇到一个难题:jquery ajax 获取返回值xml不支持,<websitename><![CDATA[http://beijing.lashou.com/]]> </websitename>,包含CDATA 竟然获取不到值;$(xml).find(websitename).text(); 在晚上查找了半天,找到一个解决方案,


datatype:text/xml 修改为 datatype:xml

 

但同样的,问题也来了,在chrome浏览器和IE浏览器不兼容。

 

找到一个解决方案:

 

jQuery在用Ajax传送数据时,有一个参数是dataType,对于其的使用,手册是这么说明的。

 

dataType (String) : 预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息返回 responseXML 或 responseText,并作为回调函数参数传递,可用值:

"xml": 返回 XML 文档,可用 jQuery 处理。

"html": 返回纯文本 HTML 信息;包含 script 元素。

"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了"cache"参数

"json": 返回 JSON 数据 。

"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。

"text": 返回纯文本字符串

    但是在使用时,发现加了 dataType时发现在不同服务器上可能出现js程序出错,当然是内部错误,造成程序不能正常运行,而且错误在firebug中不显示。但是服务器中返回的xml数据有时是字符格式的,有时是xml文档格式的,该怎样去随服务器应变呢?

$(document).ready(function(){
    var path='cache/orgnization.xml';
    $.post(path,{},function(xml){

       alert(typeid(xml));//用户监测返回的datatype类型,一般为string
        if(typeof(xml)=='string') {//判断当前的xml的类型,如果是字符串,则转化为xml文档格式
            xml = getXmlDoc(xml);
        }
        $(xml).find('item').each(function(index) {               
                var id = $(this).find('id').eq(0).text();
                var name = $(this).find('name').eq(0).text();
                var role = $(this).find('role').eq(0).text();
                var contact = $(this).find('contact').text();
                var tel = $(this).find('tel').text();
                var email = $(this).find('email').text();
                var html="<div align='left' style='float: left; width: 42.69%; height: 108px;  border: none; padding: 8px;'><p ><strong>"+name+"</strong><br>部门职 能:"+role+"<br>联系人:"+contact+" <br>联系电话:"+tel+"<br>邮箱:"+email+"</p></div>";
                $('#orgnization').append(html);                                       
        });
       
    });   
});

   上面的jQuery代码中用到了一个 getXmlDoc函数,现在把他贴出来。

function getXmlDoc(retXml) {
       if( retXml == "false" ){
        //can not get the customer info
            alert(retXml);
            return false;
       }else{
       
            //get the xml data
            var xmlDoc;
            if (window.ActiveXObject)
            {
                   xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
                   xmlDoc.async=true;
                   xmlDoc.loadXML(retXml);
            }
            // code for Mozilla, Firefox, Opera, etc.
            else if (document.implementation && document.implementation.createDocument)
            {
              var oParser=new DOMParser();
              xmlDoc=oParser.parseFromString(retXml,"text/xml");

            }
            else
            {
                   alert('你的浏览器不支持这个脚本!');
                   return false;
            }
       }
       return xmlDoc;
}

分享到:
评论

相关推荐

    xapges引用jquery

    在XPages应用开发中,jQuery是一个非常常用的JavaScript库,它提供了丰富的DOM操作、事件处理、动画效果以及Ajax交互等功能,极大地简化了JavaScript编程。本文将详细介绍如何在XPages环境中引用和使用jQuery。 ...

    面试问题.docx

    ### IT知识点总结 ...以上知识点详细介绍了在IT领域内关于`sprintf`使用时常见的问题及解决方案、XML CDATA的作用与使用以及AJAX的基本概念与应用。希望这些内容能够帮助开发者更好地理解和应用这些技术。

    domino xpages js动态加载

    例如,`&lt;xp:scriptBlock&gt;`是XPages中的一个组件,用于在页面上内联定义JavaScript代码。在提供的代码段中: ```xml &lt;xp:scriptBlock id="scriptBlock1"&gt; &lt;xp:this.value&gt;&lt;![CDATA[ var a="#{javascript:return 'a...

    ajax调用简单实例

    在Web开发中,Ajax(Asynchronous JavaScript and XML)是一种创建动态网页的技术,它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。这个实例将讲解如何使用原生JavaScript进行简单的Ajax...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    对象在内存中存在形式 函数传递对象方式 8-26 3.函数传递基本数据类型和数组方式 成员方法① 8-26 4.成员方法② 8-26 5.作业评讲 8-27 mysql1 8-27 mysql2 8-28 1.mysql 8-28 2.mysql 8-28 3.mysql 8-28 4.mysql 8-...

    ajax读取数据后使用jqchart显示图表的方法

    在本例中,我们使用jQuery库中的$.ajax方法来发起异步请求。以下是一个简单的Ajax请求示例: ```javascript $.ajax({ url: "chartdata.html", type: "GET", success: function(cdata) { showDDChart(cdata); }...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    史上最全韩顺平毕业班视频------这里只有10月份,8,9,11月份在另外一个文件下。 传智播客PHP就业班视频课程列表 8-11 1.html介绍 html运行原理① 8-11 2.html运行原理② html文件基本结构 html元素和属性 8-11 3....

    史上最全传智播客PHP就业班视频课,8月份视频

    史上最全韩顺平毕业班视频------这里只有8月份,9,10,11月份在另外一个文件下。 传智播客PHP就业班视频课程列表 8-11 1.html介绍 html运行原理① 8-11 2.html运行原理② html文件基本结构 html元素和属性 8-11 3....

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    史上最全韩顺平毕业班视频------这里只有9月份,8,10,11月份在另外一个文件下。 传智播客PHP就业班视频课程列表 8-11 1.html介绍 html运行原理① 8-11 2.html运行原理② html文件基本结构 html元素和属性 8-11 3....

    (全)传智播客PHP就业班视频完整课程

    对象在内存中存在形式 函数传递对象方式 8-26 3.函数传递基本数据类型和数组方式 成员方法① 8-26 4.成员方法② 8-26 5.作业评讲 8-27 mysql1 8-27 mysql2 8-28 1.mysql 8-28 2.mysql 8-28 3.mysql 8-28 4.mysql 8-...

Global site tag (gtag.js) - Google Analytics