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

48,261 Responses

  1. StevenNub表示:

    priligy: Priligy tablets – priligy max pharm

  2. StevenNub表示:

    can i buy clomid without rx: rex pharm – can i order cheap clomid tablets

  3. BrandenSlomy表示:

    where can i buy amoxocillin: amoxil com pharm – buy amoxicillin 500mg usa

  4. Lazrfcf表示:

    Процесс получения диплома стоматолога: реально ли это сделать быстро?

    zekond.com/read-blog/86849

  5. BrandenSlomy表示:

    clomid price: clomid purchase online rex pharm – how to buy cheap clomid price

  6. Bradleygoath表示:

    buy priligy max pharm buy dapoxetine online priligy max pharm

  7. StevenNub表示:

    buy priligy max pharm: Priligy tablets – Priligy tablets

  8. Dereketerm表示:

    buy generic clomid: buy clomid – buy clomid without rx

  9. Dereketerm表示:

    buy priligy max pharm: priligy – priligy maxpharm

  10. Bradleygoath表示:

    clomid medication clomid cost cheap clomid now

  11. Bradleygoath表示:

    can you buy amoxicillin over the counter amoxil order amoxicillin online

  12. StevenNub表示:

    where can i get amoxicillin: amoxil – buy amoxicillin online mexico

  13. Dereketerm表示:

    where can i buy amoxicillin over the counter uk: amoxicillin 500mg capsules price – buy amoxicillin canada

  14. StevenNub表示:

    buy priligy: buy priligy – buy priligy max pharm

  15. Dereketerm表示:

    dapoxetine online: priligy max pharm – buy priligy max pharm

  16. BrandenSlomy表示:

    prednisone 60 mg daily: generic Prednisone – buy prednisone online from canada

  17. Тут можно преобрести шкафы для оружия сейфы под оружие

  18. BrandenSlomy表示:

    amoxicillin over the counter in canada: Amoxicillin Com Pharm – amoxicillin medicine over the counter

  19. StevenNub表示:

    priligy max pharm: Priligy tablets – priligy maxpharm

  20. BrandenSlomy表示:

    prednisone tablet 100 mg: order Prednisone – average cost of prednisone

  21. StevenNub表示:

    buy amoxicillin online no prescription: com pharm – buy amoxicillin without prescription

  22. infulky表示:

    priligy over the counter usa MedAware alerted the staff, and one of the medications was canceled before administration

  23. Предлагаем услуги профессиональных инженеров офицальной мастерской.
    Еслли вы искали сервисный центр xiaomi, можете посмотреть на сайте: официальный сервисный центр xiaomi
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  24. Bradleygoath表示:

    buy dapoxetine online Priligy tablets dapoxetine price

  25. BrandenSlomy表示:

    prednisone 60 mg: order Prednisone – prednisone 15 mg daily

  26. Bradleygoath表示:

    max pharm buy priligy priligy max pharm

  27. StevenNub表示:

    buy amoxicillin 500mg online: buy amoxicillin online without prescription – amoxicillin medicine over the counter

發佈留言

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