3

AJAXを使用していくつかのXMLクロスドメインデータを取得して処理したいと思います。これが私のコードです:

$(document).ready(function(){
   $.ajax({
      url: "http://www.synthesiagame.com/scoreboardFeed.aspx?p=c71067ca61fb1c8f3dc9e56dd58cd028_ee7c7e67ec3bc17a08b648fc77802697_f334fca735419b6074f78d82fcc9904d",
      type: "POST",
      dataType: "jsonp xml",
      success: function(data) {
         alert($(data));
         $(data).find('score').each(function(){
            $("#testing").append($(this).attr("points") + "<br />");
         });
      }, error: function(jxhr, status, err) {
            alert("Ajax error: status = " + status + ", err = " + err);
         }
   });
});

これはalert()メッセージを表示しますが、XMLデータを処理しません。ただし、XMLデータを含むファイルをURLとしてサーバーに配置すると、完全に機能します。

私はこの仕事をするために2日間行ってきました。私はこのサイトで同様のトピックを扱っているすべての質問を読んだに違いありませんが、答えは私の問題を解決しませんでした。リクエストに答える際のデータの提示方法に問題があるのではないかと思い始めています。

4

1 に答える 1

1

これは機能しません。返されたファイルは関数でラップされていないため、JSONPコールバックを呼び出すことはできません。ラッピング機能や「パディング」はありません。

JSONPは、戻ってくるデータが関数でラップされている場合にのみ機能します。次に、JQueryはその関数を評価し、結果のオブジェクトを提供します。

クロスドメインXMLを取得する唯一の方法は、ある種のプロキシを使用して、独自のドメインでページを提供することです。独自のxmlを使用できる理由は、それがドメイン内にあるため、競合がないためです。

これは、phpプロキシを使用してこれを行う方法に関する優れたチュートリアルです。PHPを使用できない場合は、ドメインでそのファイルを取得する別の方法を見つける必要があります。

于 2012-12-19T17:26:24.737 に答える