2011-12-13 81 views
1

我正在開發一個簡單的移動應用程序,用於顯示來自XML文件的貨幣匯率。現在,問題是我從服務器讀取XML,所以我必須將完整的URL放在.ajax中,但它似乎不適用於外部URL。有人可以告訴我如何解決這個問題或如何更換代碼,以便它可以工作?AJAX外部URL?

$(document).ready(function() { 
    $.ajax({ 
    type: "GET", 
    url: "http://www.domain.com/currencies.xml", 
    dataType: "xml", 
    success: function(xml) { 



    $(xml).find('Currency').each(function(){ 

    var Name = $(this).find('Name').text(); 
    var ValueUSD = $(this).find('ValueUSD').text(); 
    var ValueEUR = $(this).find('ValueEUR').text(); 
    var ExValueUSD = $(this).find('ExValueUSD').text(); 
    var ExValueEUR = $(this).find('ExValueEUR').text(); 

    $('#content').append('<div class="currencyBox"><div class="currency">'+Name+'</div><div class="tab1"><div class="half">'+ValueUSD+'</div><div class="half">'+ValueEUR+'</div></div><div class="tab2"><div class="half">'+ExValueUSD+'</div><div class="half">'+ExValueEUR+'</div></div></div>'); 

    }); 



    } 
    }); 
}); 

</script> 
+0

您將永遠無法對另一個域執行ajax請求。您必須編寫一些可以調用的服務器端腳本,並讓該腳本檢索遠程文件。 –

+0

如果您正在從file://協議載入您的HTML而不是iOS上的Web瀏覽器,則Android和BB不會受到相同原始策略的影響。 PhoneGap應用程序通常會利用這個事實。 –

回答

2

看看關於jsonp的jquery doc。特別是可以在html5中進行跨站請求,但是大多數工具(firebug,noscript,adblock)和默認情況下的某些瀏覽器都會使用這些請求。所以我會堅持jsonp作爲最可靠的來源。

0

由於相同的原產地策略,Ajax無法使用跨域。在這種情況下嘗試JSONP。