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

47,930 Responses

  1. Eddieduart表示:

    farmacia envГ­os internacionales gran farmacia online farmacia online barata

  2. Ronniewessy表示:

    https://tadalafilo.pro/# farmacia online madrid

  3. Mariophity表示:

    farmacia online madrid: farmacia online internacional – farmacia barata

  4. Ronniewessy表示:

    http://kamagraes.site/# farmacia online envío gratis

  5. JasonBib表示:

    http://farmacia.best/# farmacia online madrid

  6. Ronniewessy表示:

    https://tadalafilo.pro/# farmacia 24h

  7. Ronniewessy表示:

    https://kamagraes.site/# farmacia barata

  8. I really love your blog.. Pleasant colors & theme. Did you develop this site yourself?

    Please reply back as I’m looking to create my own personal site and want to know where you got this from or just
    what the theme is named. Cheers!

  9. Ronniewessy表示:

    https://tadalafilo.pro/# farmacia online envío gratis

  10. Mariophity表示:

    п»їfarmacia online: Levitra sin receta – farmacia barata

  11. Ronniewessy表示:

    http://sildenafilo.store/# viagra precio 2022

  12. Eddieduart表示:

    farmacia online 24 horas comprar cialis original farmacias online seguras

  13. Ronniewessy表示:

    http://vardenafilo.icu/# farmacia online 24 horas

  14. JasonBib表示:

    http://tadalafilo.pro/# farmacia online madrid

  15. Ronniewessy表示:

    https://vardenafilo.icu/# farmacia online madrid

  16. RigkfdMeowbiz表示:

    Рекомендую этот сайт!Демонтажные работы Алматы Демонтажные работы в Алматы и вывоз мусора от компании Ваш-демонтаж.

  17. Ronniewessy表示:

    http://sildenafilo.store/# comprar viagra en españa envio urgente contrareembolso

  18. Mariophity表示:

    comprar viagra sin gastos de envГ­o: comprar viagra contrareembolso 48 horas – sildenafil 100mg genГ©rico

  19. Ronniewessy表示:

    http://kamagraes.site/# farmacia online

  20. Ronniewessy表示:

    https://vardenafilo.icu/# farmacia online

  21. Eddieduart表示:

    farmacias baratas online envГ­o gratis Precio Cialis 20 Mg farmacia online 24 horas

  22. Ronniewessy表示:

    https://tadalafilo.pro/# farmacia online

  23. JasonBib表示:

    https://tadalafilo.pro/# farmacias online baratas

  24. Ronniewessy表示:

    https://tadalafilo.pro/# farmacia online madrid

  25. Mariophity表示:

    farmacias baratas online envГ­o gratis: kamagra jelly – farmacias online baratas

  26. WyodjxMeowbiz表示:

    Рекомендую этот сайт!Снос дома Алматы Демонтажные работы в Алматы и вывоз мусора от компании Ваш-демонтаж.

  27. Eddieduart表示:

    farmacia envГ­os internacionales comprar kamagra farmacia online internacional

  28. JasonBib表示:

    https://farmacia.best/# farmacia 24h

  29. Ronniewessy表示:

    http://farmacia.best/# farmacia online internacional

  30. Ronniewessy表示:

    https://tadalafilo.pro/# farmacia online internacional

發佈留言

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