2010-07-08 26 views
3

我使用這個腳本來解析一個帶有jQuery的XML文件,但只有在本地服務器中有XML文件時才能運行。你知道我該如何解析遠程服務器上的XML文件?如何用jQuery解析遠程XML文件

<script>$(document).ready(function(){ 
    $.ajax({ 
    type: "GET", 
    url: "http://www.myotherwebsite.com/folder/myfile.xml", 
    dataType: "xml", 
    success: function(xml){ 
     $(xml).find("user").each(function(){ 
     var name = $(this).find("name").text(); 
     var email = $(this).find("email").text(); 
     var phone_number = $(this).find("mobile").text(); 

     document.write("<b>Name</b>: "+name+"<br>"); 
     document.write("<b>Email</b>: "+email+"<br>"); 
     document.write("<b>Phone Number</b>: "+phone_number+"<br>"); 
     }) 
    } 
    }); 
}); 
</script> 

回答

3

只能使用JavaScript(瀏覽器)訪問遠程數據。

您需要一些本地服務器爲您(代理)進行遠程訪問。

(局部的JavaScript代碼被上執行的域)

+0

你知道我該怎麼做嗎? – Marco 2010-07-08 17:14:30

+0

只要你的本地服務器通過一些本地url請求.xml文件...你可以複製它,或者如果它不斷變化,請向它發出請求。 – 2010-07-08 17:16:47

+0

你能告訴我怎麼用一個例子嗎?謝謝。 – Marco 2010-07-08 17:20:39

2

有幾種方法可以解決此問題,但解決此問題的典型方法是從服務器端向另一個站點發出請求,然後將結果返回給客戶端。

因此,您可以對運行在本地服務器上的服務器端代碼進行Ajax調用。該代碼然後會:

  • 請求從遠程服務器
  • 返回XML文件的結果,您的客戶端代碼
  • 然後,您可以解析XML,你正在做

以下article爲解決此問題的可能方法(包括標準代理方法)提供了指南。