0

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。您应该能够将其输入浏览器并查看它。但是,当我运行此代码时,我从错误函数中得到警报,而不是成功。任何想法表示赞赏!谢谢。

4

1 回答 1

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

于 2013-04-09T19:45:56.643 回答