使用jQuery读取从Wikipedia API返回的XML

时间:2013-04-09 19:26:08

标签: jquery xml api mediawiki

JS:

$.ajax({
    type: "GET",
    url: "http://en.wikipedia.org/w/api.php?format=xml&action=query&titles=pie&prop=revisions&rvprop=content",
    dataType: "xml",
    success: function(xmlData){
        var totalNodes = $('*',xmlData).length; // count XML nodes
        alert("This XML file has " + totalNodes);
    },
    error: function(){
         alert("Could not retrieve XML file.");
    }
 });

不确定我的问题是什么;有人可以帮忙吗?我提供的URL是'pie'wiki页面的返回XML。您应该能够将其输入浏览器并查看它。但是,当我运行此代码时,我从错误函数获取警报,而不是成功。任何想法都表示赞赏!感谢。

1 个答案:

答案 0 :(得分:0)

问题出在跨域原始策略中,您无法通过获取xml文件来解决此问题。我建议切换到JSON,因为dataType: 'jsonp'用于跨域请求。您的代码将更改为:

$.ajax({
    type: "GET",
    url: "http://en.wikipedia.org/w/api.php?format=json&action=query&titles=pie&prop=revisions&rvprop=content",
    dataType: "jsonp",
    success: function(jsonData){
        //var totalNodes = $('*',xmlData).length; // count XML nodes
        //alert("This XML file has " + totalNodes);
        console.log(jsonData);
    },
    error: function(){
         alert("Could not retrieve data.");
    }
 });

这样您就不需要解析xml,因为您已经获得了Javascript Object