【问题标题】:Using jQuery Ajax to deal with xml file使用jQuery Ajax处理xml文件
【发布时间】:2013-03-15 12:24:43
【问题描述】:

我是使用 jQuery 解析 Ajax 和 Xml 的新手,我有一点问题。我不想在这里从非本地 xml 文件中检索数据:http://www.velib.paris.fr/service/carto/carto.xml。 在 Ajax 中,我编写了这样的代码:

$.ajax({
    type: 'GET' ,
    url: 'http://www.velib.paris.fr/service/carto/carto.xml' ,      
    success: function(xml) {
        console.log('Success') ;
        console.log(xml) ;            
    } ,
    error: function() {
        console.log('Error') ;
    }
}) ;

但是,“console.log(xml) 正在返回一个带有 html 标签的字符串。然而,它显然是 xml(通过扩展,当你进入我上面提到的页面时)。也许我正在做某事错了,所以我需要帮助,请:)

【问题讨论】:

    标签: jquery xml-parsing


    【解决方案1】:

    dataType: "xml"传递给ajax调用,这样jQuery就可以将响应文本解析为xml并将结果传递给成功回调

    $.ajax({
        type: 'GET' ,
        url: 'http://www.velib.paris.fr/service/carto/carto.xml' ,      
        dataType: 'xml',
        success: function(xml) {
            console.log('Success') ;
            console.log('Success found maker: ' + jQuery(xml).find('marker').length) ;
            console.log(xml) ;            
        } ,
        error: function() {
            console.log('Error') ;
        }
    }) ;
    

    【讨论】:

    • 控制台日志仍然返回“Object {responseText:”↵ ↵ ↵ ↵"}" .
    • 不,它是一个xml对象,你可以像console.log('Success found maker: ' + jQuery(xml).find('marker').length) ;一样查询
    • 复制并粘贴上面的命令到你的控制台(打开http://www.velib.paris.fr/),你会得到Success found maker: 1226打印在控制台
    • 在我身边,它返回:“成功找到制造商:0”。我也在本地试过。它运行良好并返回我可以解析的 xml 格式。
    • Same Origin Policy 可能有问题,如果您在本地页面上工作并尝试访问http://www.velib.paris.fr/service/carto/carto.xml,浏览器将不允许它。要访问上述资源,您需要在 http://www.velib.paris.fr/ 域中的页面上工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多