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

  1. Recomendo um site confiavel 1win

  2. Henryfet表示:

    neurontin oral: medicine neurontin – neurontin tablets 300 mg

  3. Henryfet表示:

    amoxicillin 500: buy amoxicillin online with paypal – amoxicillin 500mg capsules price

  4. Charleselila表示:

    can i order prednisone: cheap prednisone 20 mg – prednisone 30 mg coupon

  5. MarvinRoave表示:

    purchase neurontin online neurontin 214 drug neurontin 200 mg

  6. Billyved表示:

    https://gabapentinneurontin.pro/# neurontin 100mg caps

  7. Billyved表示:

    http://gabapentinneurontin.pro/# buy neurontin 300 mg

  8. Henryfet表示:

    neurontin 600 mg price: neurontin 100mg cost – neurontin 50 mg

  9. Richardorele表示:

    zithromax drug: zithromax online no prescription – zithromax 250 price

  10. MarvinRoave表示:

    doxycycline 100 mg doxycycline hyclate doxycycline pills

  11. Henryfet表示:

    buy amoxicillin: buy amoxicillin online with paypal – amoxicillin 1000 mg capsule

  12. MarvinRoave表示:

    neurontin buy online buy gabapentin 300 mg neurontin

  13. Richardorele表示:

    purchase neurontin online: over the counter neurontin – neurontin capsules 600mg

  14. Richardorele表示:

    zithromax online no prescription: how to get zithromax – generic zithromax online paypal

  15. Richardorele表示:

    buy generic zithromax no prescription: zithromax 250 mg australia – zithromax 500 without prescription

  16. Felipevon表示:

    https://pharmindia.online/# top 10 pharmacies in india

  17. DonaldFrown表示:

    ed meds online canada: medication canadian pharmacy – canada pharmacy online

  18. DavidThynC表示:

    canada prescription online order prescription drugs online without doctor online canadian pharmacy no prescription

  19. WilliamThity表示:

    cheap pharmacy no prescription: pharm world store – prescription drugs online

  20. Recomendo uma casa de apostas confiavel 1win

  21. Recomendo um otimo site 1win

  22. WilliamThity表示:

    canadian drug pharmacy: legit canadian pharmacy – legit canadian pharmacy online

  23. WilliamThity表示:

    top online pharmacy india: pharmacy website india – indian pharmacy

  24. Felipevon表示:

    https://pharmmexico.online/# mexican online pharmacies prescription drugs

  25. DavidThynC表示:

    pharmacies in mexico that ship to usa medication from mexico pharmacy mexico pharmacy

  26. WilliamThity表示:

    medication from mexico pharmacy: mexican rx online – buying from online mexican pharmacy

  27. Felipevon表示:

    https://pharmindia.online/# best online pharmacy india

  28. DavidThynC表示:

    buy pills without prescription canada pharmacy no prescription prescription from canada

  29. Jerometappy表示:

    https://pharmindia.online/# reputable indian pharmacies

  30. Рекомендую лучший сайт 1win

發佈留言

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