Rumah > hujung hadapan web > tutorial js > Mengapa Kod JavaScript Saya Tidak Boleh Membaca Fail Teks Setempat, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Kod JavaScript Saya Tidak Boleh Membaca Fail Teks Setempat, dan Bagaimana Saya Boleh Membetulkannya?

Barbara Streisand
Lepaskan: 2024-12-17 20:44:10
asal
453 orang telah melayarinya

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

Menyelesaikan Masalah Pembacaan Fail Teks Setempat dalam Penyemak Imbas

Dalam percubaan untuk mencipta pembaca fail teks asas, fungsi JavaScript telah dibangunkan untuk mengambil dalam laluan fail, huraikan setiap baris ke dalam tatasusunan aksara, tetapi menemui ralat. Artikel ini bertujuan untuk mendiagnosis dan menyelesaikan isu ini.

Diagnosis Ralat

Pada mulanya, kod gagal memaparkan kandungan teks, walaupun berjaya mendapatkan semula laluan fail. Selepas penyahpepijatan, didapati bahawa objek XMLHttpRequest tidak mengendalikan akses fail setempat dengan betul.

Penukaran kepada Firefox menghasilkan hasil yang berjaya, menyerlahkan kemungkinan isu khusus penyemak imbas. Chrome, khususnya, telah membuang XMLHttpRequest pengecualian 101, menunjukkan ralat rangkaian.

Penyelesaian untuk Keserasian Penyemak Imbas

Untuk menangani isu keserasian penyemak imbas, API Ambil, diperkenalkan dalam JS pada 2015, menawarkan pendekatan yang lebih mudah dan lebih mantap untuk mengambil data daripada URL. Berikut ialah versi kod yang dikemas kini:

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

Mengakses Fail Setempat

Pelayar moden sangat menyekat akses sistem fail langsung, jadi penggunaan file:/// harus dielakkan . Sebaliknya, pelayan web ringan seperti python -m http.server atau npx http-server boleh digunakan untuk memuatkan data melalui URL HTTP standard.

Status Pengendalian 0

Bila mengakses fail tempatan menggunakan XMLHttpRequest, tiada status dikembalikan. Untuk menyelesaikan masalah ini, semakan status 0 diperlukan:

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);
}
Salin selepas log masuk

Contoh Penggunaan

Untuk menggunakan kod yang dikemas kini, nyatakan laluan fail menggunakan fail:// /:

readTextFile("file:///C:/your/path/to/file.txt");
Salin selepas log masuk

Atas ialah kandungan terperinci Mengapa Kod JavaScript Saya Tidak Boleh Membaca Fail Teks Setempat, dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan