Rumah > pembangunan bahagian belakang > tutorial php > Mengapa AJAX Tidak Mencetuskan Muat Turun Fail, dan Apakah Alternatifnya?

Mengapa AJAX Tidak Mencetuskan Muat Turun Fail, dan Apakah Alternatifnya?

DDD
Lepaskan: 2024-12-23 17:15:15
asal
599 orang telah melayarinya

Why Doesn't AJAX Trigger File Downloads, and What Are the Alternatives?

Memuat Turun Fail melalui AJAX

Apabila cuba untuk memulakan permintaan muat turun AJAX melalui klik butang, anda mungkin menghadapi masalah di mana penyelesaiannya anda sedang menggaji nampaknya tidak berkesan.

Pendekatan anda melibatkan mencipta objek XMLHttpRequest dan menghantar permintaan GET kepada skrip PHP (download.php) yang menetapkan pengepala khusus dan membaca data daripada fail. Walau bagaimanapun, kaedah ini tidak mencetuskan gesaan muat turun yang dijangkakan.

Penyelesaian

Inti isu terletak pada hakikat bahawa AJAX sahaja tidak boleh memulakan muat turun fail secara langsung. Untuk mencapai matlamat ini, anda boleh memanfaatkan salah satu daripada dua kaedah:

Menggunakan window.location

Kaedah ini mudah dan tidak memerlukan permintaan AJAX. Hanya berikan URL muat turun ke window.location.

window.location = "download.php";
Salin selepas log masuk

Ini akan menavigasi ke skrip muat turun dan menggesa pengguna memuat turun fail tanpa menukar halaman semasa.

Menggunakan atribut muat turun (HTML5)

Jika sokongan penyemak imbas membimbangkan, pertimbangkan untuk menggunakan atribut muat turun (disokong oleh Firefox dan Chrome).

<a href="download.php" download>Download File</a>
Salin selepas log masuk

Atribut muat turun menggesa pengguna memuat turun fail tanpa meninggalkan halaman semasa.

Atas ialah kandungan terperinci Mengapa AJAX Tidak Mencetuskan Muat Turun Fail, dan Apakah Alternatifnya?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan