透過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...

43,721 Responses

  1. Отличный сайт! Всем рекомендую! Тут Вы можете приобрестиКосметика оптом

  2. JamesDiect表示:

    lana rhoades modeli: lana rhoades filmleri – lana rhoades filmleri

  3. RodrigoJet表示:

    https://evaelfie.pro/# eva elfie filmleri

  4. Thomasgelty表示:

    http://lanarhoades.fun/# lana rhoades

  5. Thomasgelty表示:

    https://abelladanger.online/# Abella Danger

  6. JamesDiect表示:

    Sweetie Fox video: sweeti fox – Sweetie Fox

  7. RodrigoJet表示:

    http://angelawhite.pro/# Angela White filmleri

  8. JamesDiect表示:

    lana rhoades modeli: lana rhoades izle – lana rhoades filmleri

  9. EddieDor表示:

    http://lanarhoades.fun/# lana rhodes

  10. JamesDiect表示:

    eva elfie filmleri: eva elfie izle – eva elfie filmleri

  11. RodrigoJet表示:

    http://lanarhoades.fun/# lana rhoades filmleri

  12. RodrigoJet表示:

    http://evaelfie.pro/# eva elfie modeli

  13. EddieDor表示:

    http://lanarhoades.fun/# lana rhoades

  14. Thomasgelty表示:

    https://abelladanger.online/# abella danger video

  15. JamesDiect表示:

    sweeti fox: Sweetie Fox izle – Sweetie Fox

  16. Jogaai表示:

    buy reglan 20mg pill cozaar 50mg tablet buy losartan 50mg generic

  17. Thomasgelty表示:

    http://lanarhoades.fun/# lana rhoades filmleri

  18. JamesDiect表示:

    lana rhoades: lana rhodes – lana rhoades izle

  19. RodrigoJet表示:

    http://lanarhoades.fun/# lana rhoades izle

  20. Metal reclaiming and reprocessing facility Ferrous metal regenerating Iron and steel recovery and recycling

    Ferrous material quality assurance, Iron recycling operations, Metal salvage and recycling

  21. Great site! I recommend to everyone!agent in China

  22. JamesDiect表示:

    Angela White video: abella danger video – abella danger video

  23. EddieDor表示:

    http://sweetiefox.online/# Sweetie Fox video

  24. Thomasgelty表示:

    https://angelawhite.pro/# ?????? ????

  25. JamesDiect表示:

    Angela White filmleri: ?????? ???? – Angela White video

  26. Thomasgelty表示:

    http://sweetiefox.online/# Sweetie Fox izle

  27. Qllkwl表示:

    brand meloxicam 7.5mg buy meloxicam online buy celebrex 100mg

  28. RodrigoJet表示:

    http://angelawhite.pro/# Angela White filmleri

發佈留言

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