處理Chrome無法讀取本地端文件問題


如果你有在本機的 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

參考自這個網站

  1. 關閉所有 chrome 的應用程式
  2. 直接從 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

Hi 喜歡這篇文章的話 可以按個讚或請我喝杯咖啡
Buy me a coffeeBuy me a coffee