處理Chrome無法讀取本地端文件問題
19 Jun 2019如果你有在本機的 html 檔內嘗試使用 ajax 或任何其他手法開啟另一個本地端檔案 (像是載入一個 json 檔),那你是無法如願使用的,此時在開發者工具會看到類似這樣的錯誤訊息:
URL scheme must be "http" or "https" for CORS request.
因為 Google Chrome 預設是禁止這樣的行為的 (file-access-from-files
)
解法 1 : 強制 chrome 允許 file-access-from-files
參考自這個網站
- 關閉所有 chrome 的應用程式
- 直接從 CMD 下指令
$ chrome.exe --allow-file-access-from-file
這樣可以讓 chrome 暫時允許讀取本機檔案,但缺點就是每次都要執行一次,而且瀏覽器關掉就失效了,很不方便。
解法 2 : 架一個簡單的本地端 server
這算是一個比較正規的解法。
架伺服器的工具很多,如果你一時沒有什麼想法只想快速跑一個起來,那我推薦使用 npm http-server,他只需要兩行指令,一行安裝,一行執行:
$ npm install http-server -g
$ http-server ./YOUR_FOLDER
就可以在http://127.0.0.1:8080
看到你的網站了
不想用 node.js ? 這裡有一份推薦清單供你選擇:imgarylai/awesome-webservers
解法 3 : 改用 Firefox
是的你沒有看錯,直接改用火狐就可以了ヽ(✿ ゚ ▽ ゚)ノ
2021/07/02 補充: Firefox 也修正了,現在火狐一樣不支援,乖乖架站吧
Firefox 68: local files now treated as cross-origin