2013-04-14 64 views
-1

我正在研究讀取XML文件並輸出數據的腳本。它在我的Web服務器上運行時運行良好,但不會從本地計算機運行。 (「542Data.xml」文件與服務器和計算機上的HTML頁面存儲在同一文件夾中,並且我檢查了所有文件版本都是相同的。我已經在Firefox和Chrome中嘗試了它,結果相同。)用jQuery導入XML:適用於服務器,不適用於本地

<div id="output"></div> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 

<script> 
$(document).ready(function() 
{ 
    $.ajax({ 
     type: "GET", 
     url: "542Data.xml", 
     dataType: "xml", 
     success: parseXml 
    }); 
}); 

function parseXml(xml) 
{ 
    $(xml).find("point").each(function(index) 
    { 
     $("#output").append("Name: " + $(this).attr("name") + "<br />"); 
    }); 
} 

</script> 

的XML的結構爲:

<?xml version="1.0"?> 
<destinations> 
    <point name="Tot Lot at Bryan Park"> 
     <lat>39.15611</lat> 
     <long>-86.52664</long> 
     <type>outdoors</type> 
    </point> 
    <point name="Playground at Cascades Park"> 
     <lat>39.19633</lat> 
     <long>-86.53581</long> 
     <type>outdoors</type> 
    </point> 
</destinations> 

什麼我需要改變,以得到這個局部?

編輯:我錯了,它的工作在Firefox。 (不好意思!)

+0

您是指本地文件系統本地還是開發服務器? – Musa

+0

本地文件系統(例如文件:\\\ C:\ Users \ Erica \) – Erica

回答

3

你的腳本工作正常,我在Firefox。

鉻有一些安全功能,禁止你想(使用file:///爲AJAX請求)做什麼。您需要啓動瀏覽器:

chrome --disable-web-security 

禁用安全檢查。 (--allow-file-access-from-files也可能做的伎倆,但我還沒有測試它尚未)

警告:禁用安全檢查會影響您的瀏覽器的安全性,應只用於臨時發展目的。如果您計劃長時間從本地計算機運行代碼,請考慮在本地計算機上安裝Web服務器。

+2

是的,它是安全的,而不是與服務器相關的。就是這樣。 –

+0

是的,它現在也適用於Firefox(和IE)。我不知道其他怪癖早些時候破壞了Firefox,但現在已經消失了。感謝您提供關於讓Chrome合作的更多信息! – Erica

0

如果「本地工作」你的意思是你有一個文件夾中的HTML和XML文件並雙擊它打開HTML文件,然後就沒有辦法。

爲了它在本地工作,你需要將解析HTTP請求的Web服務器。在文件系統上打開本地文件並不是這裏發生的事情。 .ajax()正在發出服務器請求。沒有服務器,它將無法正常工作。

+1

ajax不是服務器必須的!它正在使用一個路徑,並且在該路徑的末尾可能是服務器或文本文件! –

+1

@AJbg - 來自http://api.jquery.com/jQuery.ajax/ - 「執行異步HTTP(Ajax)請求」。 HTTP需要一臺服務器。瀏覽器**可以**允許URI - 但這不符合標準。 – Hogan

+0

是的,當涉及到像POST這樣的方法,在這種情況下不是標準的,它是一個請求,它不是POST和純粹的獲取 –

0

你在用什麼來開發?檢查您正在使用的開發服務器是否可以提供XML文件。

+1

這個傢伙想通過jquery導入和解析xml沒有任何服務器組件需要工作。 –

+0

可能有涉及的服務器。例如,他可以使用Visual Studio在本地進行開發,並且開發服務器不能配置爲提供XML(就是這樣,我只是用它來說明)。例如,它未配置爲提供圖標文件或某些視頻格式。 – cockypup

+0

這是完全不同的 –

0

根據給定的(小)信息。可能有一個安全原因,即從谷歌倉庫導入jquery。請給出更多的代碼,或者查看firefox - ctr + shift + j中的錯誤控制檯,並且複製粘貼錯誤(如果有的話),或者只需下載jquery並將其包含在本地位置的路徑中。

+0

檢查解決方案並在本地包含jquery –

0

它在服務器上而不是你的機器上運行。看,ajax請求需要一個本地服務器運行。爲了使它工作,請在你的機器上啓動一些本地服務器。例如,如果你在Windows上,那麼下載WAMP,如果在Linux上,那麼安裝LAMP。把你的文件放在www文件夾中。然後啓動本地服務器..然後使用localhost/your_file_name訪問您的文件。這會根據你的需要給你結果。

相關問題