透過JS跨網域存取XML檔

為了一些安全性的因素,通常伺服器會阻擋跨網域的XML存取,當然如果你是該網站開發者,所開發的頁面應該將會被放在被認可的網域中,不會碰到這個問題,但我們在開發前期有可能會不在所屬的網域,這樣就會造成開發上的困難,不過我們可以透過Yahoo所提供的YQL查詢語法來解決這個問題,以下就是相關的說明:

若我們在自己的電腦用以下的語法去存取一個網路上的XML

<script>
    $(function () {
        var xmlSource = "http://stanley.cloudlab.tw/crossDomainXML/testXML.xml";
        $.ajax({
            url: xmlSource,
            success: function (data) {
                console.log(data);
            }
        })
    })
</script>

很可能會出現「No Access Control Allow Origin」的訊息:

Cross doamin XML access

但如果套用上YQL之後

<script>
$(function(){
	var xmlSource = "http://stanley.cloudlab.tw/crossDomainXML/testXML.xml";
	var yqlURL = [
		"http://query.yahooapis.com/v1/public/yql",
		"?q=" + encodeURIComponent("select * from xml where url='" + xmlSource + "'"),
		"&format=xml&callback=?"
	].join("");

	$.getJSON(yqlURL, function(data){
		console.log(data)
	});
	
})
</script>
Cross doamin XML access

可以看到已經可以抓到XML內容,這樣可以讓我們較為方便的去開發,其他詳細的使用說明可以參考Yahoo YQL Guide

You may also like...

52,154 Responses

  1. Briantrozy表示:

    can i buy zithromax online: ZithroPharm – zithromax order online uk

  2. Briantrozy表示:

    how to get cheap clomid without insurance: ClmHealthPharm – can i order clomid without prescription

  3. Briantrozy表示:

    where to buy doxycycline 100mg: doxycycline price australia – doxycycline 150 mg cost

  4. JustinTam表示:

    where to buy amoxicillin 500mg: over the counter amoxicillin canada – where to get amoxicillin over the counter

  5. JustinTam表示:

    where can i buy zithromax in canada: zithromax capsules 250mg – buy zithromax online australia

  6. Briantrozy表示:

    zithromax 500 mg: can you buy zithromax online – zithromax cost uk

  7. VirgilBlawl表示:

    cost of generic clomid no prescription ClmHealthPharm where can i get generic clomid without insurance

  8. BrandonJag表示:

    amoxicillin 500 mg tablets: buy amoxicillin from canada – amoxicillin 250 mg capsule

  9. Roberttic表示:

    http://doxhealthpharm.com/# doxycycline for sale over the counter

  10. BrandonJag表示:

    where buy clomid prices: ClmHealthPharm – buy generic clomid without prescription

  11. VirgilBlawl表示:

    zithromax for sale cheap ZithroPharm can i buy zithromax over the counter

  12. Roberttic表示:

    https://clmhealthpharm.shop/# buying generic clomid tablets

  13. Roberttic表示:

    http://zithropharm.com/# can you buy zithromax over the counter in australia

  14. Briantrozy表示:

    can i get clomid pills: ClmHealthPharm – can you get cheap clomid without rx

  15. Briantrozy表示:

    zithromax for sale cheap: where to get zithromax over the counter – zithromax for sale 500 mg

  16. VirgilBlawl表示:

    zithromax buy zithromax order online uk zithromax price south africa

  17. BrandonJag表示:

    buy amoxicillin over the counter uk: AmoHealthPharm – amoxicillin online without prescription

  18. JustinTam表示:

    buy doxycycline online canada: doxycycline 40 mg capsules – doxycycline 500mg price in india

  19. Briantrozy表示:

    amoxicillin order online no prescription: over the counter amoxicillin canada – over the counter amoxicillin

  20. I believe that avoiding prepared foods is a first step to be able to lose weight. They will taste great, but refined foods possess very little nutritional value, making you feed on more in order to have enough vitality to get throughout the day. For anyone who is constantly feeding on these foods, switching to whole grain products and other complex carbohydrates will let you have more power while consuming less. Thanks alot : ) for your blog post.

  21. BrandonJag表示:

    zithromax cost canada: buy zithromax without prescription online – buy zithromax online australia

  22. Briantrozy表示:

    how to get amoxicillin over the counter: Amo Health Pharm – amoxicillin online purchase

  23. JustinTam表示:

    can i order cheap clomid: get cheap clomid without a prescription – generic clomid

  24. Briantrozy表示:

    zithromax: Zithro Pharm – zithromax over the counter uk

  25. Ualluo表示:

    buy augmentin – buy duloxetine no prescription order cymbalta generic

  26. Briantrozy表示:

    how can i get generic clomid without insurance: cost generic clomid now – can i get cheap clomid online

  27. JustinTam表示:

    amoxicillin 500: amoxicillin 500 mg purchase without prescription – where can you get amoxicillin

  28. JustinTam表示:

    can you get clomid without a prescription: how can i get clomid for sale – where to get clomid no prescription

  29. Roberttic表示:

    https://doxhealthpharm.com/# doxycycline tablet

  30. BrandonJag表示:

    doxycycline india: DoxHealthPharm – purchase doxycycline without prescription

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。