2012-12-19 27 views
3

我想使用AJAX检索和处理一些XML跨域数据。这里是我的代码:使用AJAX从ASPX站点检索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,

我已经两天试图做这项工作。我必须阅读本网站上处理类似主题的所有问题,但没有答案能解决我的问题。我开始认为,当他们回答请求时,他们呈现数据的方式可能存在一些问题。

+0

当您使用自己的XML时,它是否与您期望从上面的url完全相同的XML? –

+0

是的,完全一样。 –

回答

1

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

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

您可以获得跨域XML的唯一方法是使用某种代理将页面提供回自己的域中。您可以使用自己的XML的原因是因为它在您的域中,所以不存在冲突。

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

+0

感谢您的信息!你能否修改你的教程链接?你粘贴了我的代码上的链接。 –

+0

哎呦。现在应该修好了 –