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 に答える