从 ASPX 站点使用 AJAX 检索 XML 数据

Posted

技术标签:

【中文标题】从 ASPX 站点使用 AJAX 检索 XML 数据【英文标题】:Retrieve XML data with AJAX from ASPX site 【发布时间】:2012-12-07 01:23:19 【问题描述】:

我想使用 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 放在我的服务器上,它就可以完美地工作。

我已经尝试了两天来完成这项工作。我一定已经阅读了这个网站上所有关于类似主题的问题,但没有答案能解决我的问题。我开始认为他们在回答请求时呈现数据的方式可能存在一些问题。

【问题讨论】:

当您使用自己的 XML 时,它是否与您期望从上面的 url 中获得的 XML 完全相同? 【参考方案1】:

这是行不通的。返回的文件未包装在函数中,因此无法调用 JSONP 回调。没有包装功能或“填充”。

JSONP 仅在返回的数据包含在函数中时才有效。然后 JQuery 将评估该函数并为您提供结果对象。

获取跨域 XML 的唯一方法是使用某种代理将页面返回到您自己的域中。之所以可以使用自己的xml,是因为它在你的域中,所以没有冲突。

Here is a good tutorial on how to use a php proxy to do this. 如果你不能使用 php,你将不得不寻找另一种方法来获取你的域中的文件。

【讨论】:

感谢您的信息!你能修改你的教程链接吗?您粘贴了我的代码中的链接。 哎呀。现在应该修复了

以上是关于从 ASPX 站点使用 AJAX 检索 XML 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何格式化通过 AJAX 从 ASPX JSON 解析的日期?

使用 JavaScript Ajax 从另一个站点检索内容

从 XML 内容生成静态 HTML 站点

如何使用 Python 从 .aspx 页面检索数据?

使用 Excel VBA 从 aspx 页面表中检索数据

如何从 aspx 中的 Gridview 行中检索主键以在 userControl.ascx 中使用?