2012-12-19 64 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

哎呦。現在應該修好了 –