1

XML ドキュメントを返す ASPX ページへの jQuery $ajax GET リクエストを作成しようとしていますが、動作させることができません。私は何を間違っていますか?

jQuery

$(document).ready(function() {
  $("#loading").show();
  $.ajax({
    type: "GET",
    url: "http://www.url.com/reports/xml.aspx",
    dataType: "xml",
    success: parseXml
});

function parseXml(xml) {
    $(xml).find("Year").each(function() {
    $("body").append( $(this).find("RevenueYear").text() + '<br />' });
}});​

HTML

<!DOCTYPE html>
<html>
   <head>
   </head>
   <body>

   </body>
</html>

<strong>XML

<root>
   <Year>
      <RevenueYear>2011</RevenueYear>
      <RevenueType>actual</RevenueType>
   </Year>
   <Year>
      <RevenueYear>2012</RevenueYear>
      <RevenueType>estimate</RevenueType>
   </Year>
</root>
4

2 に答える 2

2

クレジットは、重要な質問をしたBNLに送られます!

jQuery.ajax()の jQuery ドキュメントによると

ブラウザーのセキュリティ制限により、ほとんどの "Ajax" 要求は同一オリジン ポリシーの対象となります。要求は、別のドメイン、サブドメイン、またはプロトコルからデータを正常に取得できません。

Same-Origin ポリシーの詳細

少し前に、 SO で同様の質問がありました。解決策は非常に簡単です。サーバー側でコンテンツを転送する Web プロキシ (PHP、ASP.NET、...) を作成するだけで、同じことを避けることができます。 -オリジンポリシー。

于 2012-07-30T18:40:44.217 に答える
1

関数parseXmlにいくつかの構文エラーがあります。}との数が間違っています)

そのはず:

function parseXml(xml) {
    $(xml).find("Year").each(function() {
        $("body").append( $(this).find("RevenueYear").text() + '<br />');
    });
}
于 2012-07-30T18:29:37.470 に答える