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

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,它就可以完美地工作。
我已经尝试了两天让这个工作。我一定读了这个网站上所有与类似主题有关的问题,但没有答案解决我的问题。我开始认为他们在回答请求时呈现数据的方式可能存在问题。

当您使用自己的XML时,它是否与上述URL中期望的XML完全相同? - Brendan Hannemann
1个回答

1

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

只有当返回的数据被包装在一个函数中时,JSONP才能正常工作。然后JQuery将评估该函数并给出结果对象。

您唯一可以获取跨域XML的方法是使用某种代理将页面返回到您自己的域中。您可以使用自己的xml的原因是它在您的域中,因此不存在冲突。

这里有一个很好的教程,介绍如何使用php代理来完成此操作。 如果您无法使用php,则必须找到另一种方法将该文件放入您的域中。


谢谢提供信息!您能否修正一下教程的链接?您复制了我的代码上的链接。 - Gori Fater
糟糕,现在应该修好了。 - Pow-Ian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接