透過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,673 Responses

  1. RonaldTen表示:

    https://indianph.xyz/# pharmacy website india

  2. KennethSeete表示:

    buy medicines online in india reputable indian pharmacies india pharmacy mail order

  3. Great site! I recommend to everyone!ClubGG

  4. Zqolub表示:

    domperidone sale sumycin where to buy purchase sumycin for sale

  5. Agiwpg表示:

    cheap omeprazole 10mg buy prilosec no prescription purchase prilosec

  6. Great site! I recommend to everyone!PokerBROS

  7. JamesCof表示:

    amoxicillin order online: buy amoxicillin – where to buy amoxicillin over the counter

  8. Charlesdix表示:

    http://lisinopril.top/# lisinopril 2.5 pill

  9. JamesCof表示:

    furosemida 40 mg: Buy Lasix – lasix medication

  10. Charlesdix表示:

    http://amoxil.cheap/# where can i buy amoxocillin

  11. DavidRak表示:

    stromectol order online ivermectin cost stromectol usa

  12. JamesCof表示:

    amoxicillin capsule 500mg price: amoxicillin 500mg price canada – amoxicillin 500 coupon

  13. Great site! I recommend to everyone!PPPoker

  14. LeonardFaulk表示:

    prednisone 20mg online pharmacy: prednisone in india – prednisone 50mg cost

  15. Charlesdix表示:

    https://furosemide.guru/# lasix furosemide

  16. Charlesdix表示:

    http://stromectol.fun/# stromectol price

  17. Stephenpem表示:

    http://stromectol.fun/# cheap stromectol

  18. JamesCof表示:

    lasix pills: Buy Furosemide – furosemide 40mg

  19. JamesCof表示:

    where to buy amoxicillin 500mg: purchase amoxicillin 500 mg – amoxicillin buy online canada

  20. DavidRak表示:

    lisinopril 2.5 mg buy online zestril discount zestril tablet price

  21. DavidRak表示:

    buy ivermectin canada ivermectin 50 ivermectin 500ml

  22. Hiqswe表示:

    crestor 10mg drug brand rosuvastatin 20mg ezetimibe price

  23. JamesCof表示:

    prednisone tablets canada: prednisone 10 mg over the counter – buy cheap prednisone

  24. Charlesdix表示:

    http://amoxil.cheap/# purchase amoxicillin 500 mg

  25. LeonardFaulk表示:

    can i buy amoxicillin over the counter in australia: where to get amoxicillin over the counter – amoxicillin pharmacy price

  26. Charlesdix表示:

    http://amoxil.cheap/# amoxicillin script

  27. JamesCof表示:

    prednisone 200 mg tablets: how can i get prednisone online without a prescription – prednisone brand name in usa

  28. DavidRak表示:

    amoxicillin without prescription amoxacillian without a percription amoxicillin 500mg buy online canada

  29. Ronhru表示:

    buy zestril 2.5mg online cheap order lisinopril without prescription order zestril 2.5mg without prescription

  30. JamesCof表示:

    prednisone 475: how to get prednisone without a prescription – prednisone 50mg cost

發佈留言

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