我的jQuery AJAX请求有什么问题?

时间:2012-07-30 18:22:16

标签: xml jquery

我正在尝试向返回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>

XML

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

2 个答案:

答案 0 :(得分:2)

归功于BNL,他提出了至关重要的问题!

根据jQuery.ajax()

的jQuery文档
  

由于浏览器安全限制,大多数“Ajax”请求都是主题   同源政策;请求无法成功检索   来自不同域,子域或协议的数据。

Same-Origin-policy in depth

前段时间,SO上有一个similar question - 解决方案非常简单: 只需创建一个Web代理(PHP,ASP.NET,...)来传输内容@服务器端,这样就可以避免使用同源策略。

答案 1 :(得分:1)

您的parseXml函数有一些语法错误。您的})的编号错误。

应该是:

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