首頁 >web前端 >js教程 >為什麼我的 JavaScript 程式碼無法讀取本機文字文件,如何修復?

為什麼我的 JavaScript 程式碼無法讀取本機文字文件,如何修復?

Barbara Streisand
Barbara Streisand原創
2024-12-17 20:44:10490瀏覽

Why Can't My JavaScript Code Read Local Text Files, and How Can I Fix It?

瀏覽器中本地文字檔案讀取的故障排除

為了建立一個基本的文字檔案閱讀器,開發了一個JavaScript 函數來取得在檔案路徑中,將每一行解析為字元數組,但遇到錯誤。本文旨在診斷並解決這些問題。

錯誤診斷

最初,儘管成功檢索了檔案路徑,但程式碼無法顯示文字內容。經過調試,發現 XMLHttpRequest 物件未正確處理本機檔案存取。

更改為 Firefox 產生了成功的結果,突出顯示了潛在的瀏覽器特定問題。特別是 Chrome,拋出了 XMLHttpRequest 例外 101,表示網路錯誤。

瀏覽器相容性解決方案

為了解決瀏覽器相容性問題,Fetch API,2015 年在JS 中引入,提供了一種更簡單、更健壯的方法來從URL 取得資料。這是程式碼的更新版本:

fetch("myText.txt")
  .then((res) => res.text())
  .then((text) => {
    // process the text content
  })
  .catch((e) => console.error(e));

訪問本地文件

現代瀏覽器嚴格限制直接文件系統訪問,因此應避免使用file:/// 。相反,可以使用輕量級網頁伺服器(例如 python -m http.server 或 npx http-server)透過標準 HTTP URL 載入資料。

處理狀態 0

何時使用 XMLHttpRequest 存取本機文件,不傳回任何狀態。要解決此問題,需要檢查狀態0:

function readTextFile(file) {
  var rawFile = new XMLHttpRequest();
  rawFile.open("GET", file, false);
  rawFile.onreadystatechange = function () {
    if (rawFile.readyState === 4) {
      if (rawFile.status === 200 || rawFile.status == 0) {
        // process the text content
      }
    }
  };
  rawFile.send(null);
}

範例用法

要使用更新的程式碼,請使用file:// 指定檔案路徑/:

readTextFile("file:///C:/your/path/to/file.txt");

以上是為什麼我的 JavaScript 程式碼無法讀取本機文字文件,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn