XMLHttpRequest, yaitu AJAX, tanpa XML.
Cara tepat Anda melakukan ini tergantung pada kerangka JavaScript apa yang Anda gunakan, tetapi jika kami mengabaikan masalah interoperabilitas, kode Anda akan terlihat seperti:
var client = new XMLHttpRequest ();
client.open ('GET', '/foo.txt');
client.onreadystatechange = function () {
lansiran (client.responseText);
}
client.send ();
Namun secara normal, XMLHttpRequest tidak tersedia di semua platform, jadi beberapa fudgery dilakukan. Sekali lagi, taruhan terbaik Anda adalah menggunakan kerangka kerja AJAX seperti jQuery.
Satu pertimbangan tambahan: ini hanya akan berfungsi selama foo.txt ada di domain yang sama. Jika berada di domain yang berbeda, kebijakan keamanan asal-sama akan mencegah Anda membaca hasilnya.
if (client.readyState === 4){ }
client.onloadend
dan hanya mendapatkan data yang lengkapclient.readyState
properti. Saya downvoting sampai itu, orang tidak akan membaca komentar untuk menemukan jawabannya hanya sebagian benar.di sini adalah bagaimana saya melakukannya di jquery:
sumber
file://
yaitu:file:///example.com/foo.html
. Firefox mengeluhkan kesalahan sintaksis dan blok Chrome karena menganggapnya sebagai permintaan Cross-Origin.dataType
parameter, lihat api.jquery.com/jQuery.get/http://...
bagian, karena ia hidup di domain yang sama, itu akan berfungsi, misalnyajQuery.get("foo.txt", ...)
.Pembaruan 2019: Menggunakan Ambil:
https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
sumber
response.ok
(atau setara) di suatu tempat dalam kode Anda? Saya tidak terlalu berpengalamanfetch
, jadi saya tidak tahu tempat yang tepat untuk mengaturnya.Jika Anda hanya menginginkan string konstan dari file teks, Anda dapat memasukkannya sebagai JavaScript:
String yang dimuat dari file menjadi dapat diakses oleh JavaScript setelah dimuat. Karakter `(backtick) memulai dan mengakhiri literal templat , memungkinkan karakter" dan 'di blok teks Anda.
Pendekatan ini berfungsi dengan baik ketika Anda mencoba memuat file secara lokal, karena Chrome tidak akan mengizinkan AJAX pada URL dengan
file://
skema tersebut.sumber
Satu hal yang perlu diingat adalah bahwa Javascript berjalan pada klien, dan bukan pada server. Anda tidak dapat "memuat file" dari server dalam Javascript. Apa yang terjadi adalah Javascript mengirimkan permintaan ke server, dan server mengirim kembali konten file yang diminta. Bagaimana Javascript menerima konten? Itulah gunanya fungsi callback. Dalam kasus Edward, itu
dan dalam kasus danb, itu
Fungsi ini dipanggil setiap kali data tiba. Versi jQuery secara implisit menggunakan Ajax, itu hanya membuat pengkodean lebih mudah dengan merangkum kode itu di perpustakaan.
sumber
Pembaruan 2020: Menggunakan Ambil dengan async / tunggu
Perhatikan bahwa
await
hanya dapat digunakan dalam suatuasync
fungsi. Contoh yang lebih panjang mungkinsumber
Ini seharusnya bekerja di hampir semua browser:
Selain itu, ada
Fetch
API baru :sumber
Saat bekerja dengan jQuery, alih-alih menggunakan
jQuery.get
, misAnda bisa menggunakan
.load
yang memberi Anda bentuk yang jauh lebih kental:.load
memberi Anda juga opsi untuk memuat sebagian halaman yang dapat berguna, lihat api.jquery.com/load/ .sumber
Jika input Anda terstruktur sebagai XML, Anda dapat menggunakan
importXML
fungsi ini. (Info lebih lanjut di sini di quirksmode ).Jika bukan XML, dan tidak ada fungsi yang setara untuk mengimpor teks biasa, maka Anda bisa membukanya dalam iframe tersembunyi dan kemudian membaca konten dari sana.
sumber