2011-10-10 58 views
0

產生不同的行爲,我有以下簡單的jQuery:

$.get('Data.csv', function(data) { 

    alert(data); 

}); 

Data.csv保存在同一文件夾作爲訪問它的HTML文件。

如果我在url爲域名(即www.mysite.com/path/to/file)時在所有瀏覽器中運行此操作,則警報將顯示Data.csv內容的字符串值。

如果我創建一個hosts文件鏈接到本地​​文件夾(即host.mysite.com/path/to/file),則alert將在所有瀏覽器中顯示Data.csv內容的字符串值。

如果我在本地打開文件(即c:\ path \ to \ file)時在IE 9中運行此操作,則警報將顯示Data.csv的內容的字符串值。

但是,如果我在本地打開文件(如file:/// c:/ path/to/file)時在FF或Chrome中運行此命令,則警報將顯示[object XMLDocument]

有誰知道這是爲什麼以及如何在FF和Chrome中以字符串的形式打開本地文件?

n.b. - 爲了排除跨平臺安全問題,我測試了這個。我不認爲這是原因,否則它根本不會分配csv文件的內容。

在此先感謝。

+1

如果您使用Firebug並在警報(數據)設置斷點,您應該能夠看到對象的實際屬性.. – Steve

回答

1

您遇到了同源策略問題。如果你看看到瀏覽器的控制檯,你會看到沿Origin null is not allowed by Access-Control-Allow-Origin.

線的東西有兩種可能的解決方法:

  1. 像XAMPP,甲基苯丙胺或類似的本地Web服務器上運行你的東西。

  2. Disable all web security on Chrome Startup,你顯然不想在現實生活中做。也不會在FF中工作。所以,堅持1.;)