2010-04-14 177 views
0

我正在嘗試使用Jquery get方法從REST服務中獲取XML文檔,但它似乎無法下載。僅僅約11秒後,連接消失,我收到一個空白文檔。我通過瀏覽器訪問URL來測試URL,並且它可以正常工作(即使需要4分鐘才能加載)。Jquery.get無法從REST風格的服務中檢索XML

$(document).ready(function() 
{ 
    $.get(
     siteUrl, 
     function(data) { parseXml(data); } 
    ); 
}); 

我使用AJAX方法考慮的,因爲你可以設置超時,但是同一個域策略應用,使用它限制了我。有任何想法嗎?

+0

在同一個域中? – 2010-04-14 16:03:31

+0

不,但根據RomanArmy的說法,如果.get僅僅是ajax函數的簡寫,那麼爲什麼它不起作用是有道理的。 – Anton 2010-04-14 18:07:56

回答

0

好了,不用彷徨和阿賈克斯將無法工作,因爲它們不是同一個域下,從而違反了Same Origin Policy

爲了解決這個問題,我們可以使用.getJson方法(更多信息IBM's site找到)

然而,在我的情況,所需的輸出不是JSON,因此,我們可以使用類似YQL from Yahoo to accomplish ...或者只是在您的域上使用代理服務器。

+0

@Anton:順便說一句,http://api.jquery.com/jQuery.getJSON/也只是ajax調用的一個包裝。如果你在url結尾處有一個'callback =?',它只會被視爲jsonp。 – R0MANARMY 2010-04-14 20:25:21

+0

沒錯。使用YQL,你必須將它添加到你的URL中,所以它應該沒問題。 – Anton 2010-04-20 17:29:16

0

從文檔jQuery.get()

這是一個簡寫的Ajax功能,這相當於:

$.ajax({ 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 

所以我不知道你意思「但同樣的域名政策適用,限制我使用它。「但如果$.get作品,所以會$.ajax