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”请求都受同源策略的约束;请求无法从不同的域、子域或协议成功检索数据。

同源策略深入

前段时间,这里有一个类似的问题- 解决方案非常简单:只需创建一个网络代理(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 回答