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

42,265 Responses

  1. DominicJaw表示:

    mexico drug stores pharmacies: mexican border pharmacies shipping to usa – mexico pharmacies prescription drugs

  2. Informative, pretty much as I had come to expect from this site.

  3. Arnoldten表示:

    mexican pharmaceuticals online medicine in mexico pharmacies buying prescription drugs in mexico

  4. Michaeldet表示:

    Свежие новости https://diesel.kyiv.ua автомобильного рынка, новинки автопрома

  5. DominicJaw表示:

    mexican mail order pharmacies: medicine in mexico pharmacies – buying from online mexican pharmacy

  6. WayneCoirl表示:

    mexican pharmaceuticals online: best online pharmacies in mexico – pharmacies in mexico that ship to usa

  7. RichardWrifs表示:

    http://mexicandeliverypharma.com/# mexican pharmaceuticals online

  8. Arnoldten表示:

    medicine in mexico pharmacies mexican drugstore online п»їbest mexican online pharmacies

  9. Danielned表示:

    Какой правовой беспредел творится в нашем городе! Недавно стало известно, что никаких исковых требований к кооперативу ‘Бест Вей’ в уголовном деле нет. В декабре прошлого года Приморский районный суд Санкт-Петербурга признал, что следственная группа ГСУ ГУ МВД России по Санкт-Петербургу и Ленинградской области незаконно скрывала материалы уголовного дела от кооператива. Это просто возмутительно! На каком основании они требуют от нас 16 миллиардов рублей? У них нет ни малейших доказательств, что наш кооператив что-то должен. Это безумие! Следствие явно пытается разорить наш кооператив, лишить нас имущества и заблокировать нашу деятельность. Мы не намерены с этим мириться! Мы добьемся справедливости, несмотря на все преграды, которые ставят перед нами. Каждый пайщик должен знать, что мы продолжаем бороться за свои права и не допустим, чтобы нас обманывали и грабили!

  10. This blog was… how do I say it? Relevant!! Finally I have found something that helped me. Thanks a lot.

  11. BernardNerce表示:

    Автомобільні новини https://autonovosti.kyiv.ua України та світу, тест-драйви нових авто, поради експертів

  12. Wonderful blog! Do you have any recommendations for aspiring writers? I’m hoping to start my own website soon but I’m a little lost on everything. Would you propose starting with a free platform like WordPress or go for a paid option? There are so many choices out there that I’m totally overwhelmed .. Any recommendations? Thanks!

  13. Thanks for sharing these types of wonderful content. In addition, the optimal travel in addition to medical insurance approach can often reduce those fears that come with travelling abroad. Some sort of medical crisis can rapidly become expensive and that’s likely to quickly put a financial burden on the family’s finances. Setting up in place the perfect travel insurance bundle prior to leaving is definitely worth the time and effort. Thanks a lot

  14. JamesDuemi表示:

    Сериал “911: Служба спасения” https://911-sluzhba-spaseniya.watch рассказывает о работе сотрудников экстренных служб Лос-Анджелеса, включая пожарных, медиков и операторов 911. Они ежедневно сталкиваются с опасными ситуациями, спасая жизни и решая сложные личные проблемы. Смотрите онлайн в хорошем качестве HD, бесплатно, все сезоны.

  15. DouglasMoomy表示:

    Слимофор https://slymofor.ru инновационное средство для быстрого похудения.

  16. Отличный сайт! Всем рекомендую!печать этикеток

  17. Tkmher表示:

    buy generic finax for sale – how to buy cardura purchase uroxatral without prescription

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

  19. Michaelrense表示:

    Мазь для суставов https://sustalits.ru заказать онлайн.

  20. Arthurblife表示:

    Откатные ворота под ключ в Санкт-Петербурге https://trudolubov.com/product/vorota-pod-klyuch/vorota-otkatnye/. Раздвижные ворота с установкой и доставкой.

  21. I couldn’t refrain from commenting. Perfectly written!

  22. An intriguing discussion is worth comment. I think that you need to write more about this subject matter, it may not be a taboo subject but usually folks don’t discuss these topics. To the next! Best wishes!

  23. RobertSoish表示:

    buy ciprofloxacin over the counter: ciprofloxacin generic price – buy cipro without rx

  24. washi tape表示:

    You should be a part of a contest for one of the finest websites on the net. I will recommend this site!

  25. link bokep表示:

    After I originally commented I appear to have clicked on the -Notify me when new comments are added- checkbox and now every time a comment is added I recieve 4 emails with the same comment. There has to be an easy method you can remove me from that service? Thanks a lot.

  26. ngentot表示:

    I would like to thank you for the efforts you have put in penning this website. I’m hoping to check out the same high-grade content from you in the future as well. In truth, your creative writing abilities has inspired me to get my very own blog now 😉

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

發佈留言

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