請告訴我,爲什麼本地javascript無法打開本地文件? 我試圖創建一個簡單的JavaScript/HTML應用程序,應該從本地文件系統在本地機器上運行。這個應用程序試圖讀取配置文件中使用不同的方法(JSON),但得到以下錯誤(鉻):本地javascript無法打開本地文件
在XMLHttpRequest的情況下,方法
open("GET", filename, true)
拋出一個異常:的XMLHttpRequest無法加載文件:/// bla-bla-bla。協議方案僅支持交叉源請求:http,data,chrome,chrome-extension,https,chrome-extension-resource。
在
document.createElement("iframe").src=filename
情況下,我有另一個異常:VM596:1未捕獲的拋出:DOMException:未能讀取從 'HTMLIFrameElement' 的 'contentDocument' 屬性:被阻止與原籍 「空」 幀從訪問跨域框架。」
在
var f=new File([], filename, { type: "text/plain" });
情況下,我已經得到了與零的大小,並在所有沒有錯誤的文件對象。的FileReader返回一個空的結果,那麼,
所以,我的問題是: 爲什麼它是「跨源」?這些文件存儲在同一個目錄中! 我怎麼能打開來自我運行該腳本相同的來源/目錄的本地文件? 請幫忙。
P.S .:是的,我知道--allow-file-access-from-files
,但我需要由客戶運行此。
'file://協議真的有一個非常有限的用法,用於測試或查看一個單獨的文件。對於真正的webapp測試,你需要建立一個小型的,基本的「web服務器」程序,它可以向'localhost/index.html'或'localhost/bla-bla-bla.js'發送請求。例如,Python可以讓你通過命令行在python -m SimpleHttpServer 80上設置一個文件夾 – Katana314
@BbIKTOP,tou可以將JSON文件轉換成一個javascript文件(將'var myVariable ='添加到開頭json文件),然後使用''將數據包含在'myVariable'(對象)中。雖然不是最好的解決方案,但可行。 –
他們有更多的100個沒有局域網,運行非常具體的軟件(健身房),這個應用程序旨在顯示一些廣告videoclips。 這就是爲什麼它不可能與web服務器一起使用這樣一個明顯的解決方案,這就是爲什麼我在這裏問這個問題。 當然,可以不使用json配置,而是將配置放入代碼中,也許放在單獨的文件中。這並不有趣,因此無需在此處詢問或討論。 – BbIKTOP