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

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

4

1 回答 1

1

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

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

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

这是一个关于如何使用 php 代理来执行此操作的好教程。如果您不能使用 php,您将不得不寻找另一种方法在您的域中获取该文件。

于 2012-12-19T17:26:24.737 回答