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

  1. наркология вывод из запоя в стационаре наркология вывод из запоя в стационаре .

  2. FrankMar表示:

    Ivermectin Pharm: Ivermectin Pharm Store – Ivermectin Pharm Store

  3. FrankMar表示:

    Ivermectin Pharm: stromectol medicine – ivermectin 0.5% brand name

  4. FrankMar表示:

    rybelsus: rybelsus generic – buy rybelsus

  5. Edwardwhogy表示:

    buy rybelsus rybelsus cost Semaglutide pharmacy price

  6. RobertAcele表示:

    https://semaglutidepharm.com/# buy semaglutide online

  7. Edwardwhogy表示:

    paxlovid price Paxlovid.ink Paxlovid.ink

  8. HarryAudix表示:

    AmoxilPharm: buy amoxicillin 500mg – where can you get amoxicillin

  9. Ltipto表示:

    valif online match – valif online physician sinemet where to buy

  10. RobertAcele表示:

    https://semaglutidepharm.com/# rybelsus price

  11. This is hands down one of the best articles I’ve read on this topic! The author’s comprehensive knowledge and zeal for the subject are apparent in every paragraph. I’m so appreciative for coming across this piece as it has enriched my knowledge and stimulated my curiosity even further. Thank you, author, for taking the time to craft such a phenomenal article!

  12. FrankMar表示:

    Amoxil Pharm Store: Amoxil Pharm Store – Amoxil Pharm Store

  13. HarryAudix表示:

    neurontin 500 mg: Gabapentin Pharm – Gabapentin Pharm

  14. HarryAudix表示:

    paxlovid buy: paxlovid covid – paxlovid for sale

  15. FrankMar表示:

    Amoxil Pharm Store: Amoxil Pharm Store – AmoxilPharm

  16. FrankMar表示:

    paxlovid pharmacy: Paxlovid.ink – Paxlovid.ink

  17. HarryAudix表示:

    Buy compounded semaglutide online: buy semaglutide online – buy rybelsus

  18. RobertAcele表示:

    http://amoxilpharm.store/# Amoxil Pharm Store

發佈留言

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