Apabila berurusan dengan perkhidmatan web RESTful, respons pengendalian boleh berbeza-beza bergantung pada formatnya. Artikel ini meneroka senario tertentu yang objektifnya adalah untuk menyerahkan permintaan POST dengan data JSON dan mendapatkan semula fail yang boleh dimuat turun sebagai balasan, menggesa penyemak imbas untuk menyimpannya.
Satu pendekatan ialah mencipta iframe dan menambahkan sumbernya pada badan halaman web. Ini akan mencetuskan gesaan muat turun penyemak imbas. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa kaedah ini boleh mengganggu kandungan halaman sedia ada, jadi menggunakan appendChild dan bukannya innerHTML adalah disyorkan.
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { var iframe = document.createElement("iframe"); iframe.setAttribute("src", retData.url); iframe.setAttribute("style", "display: none"); document.body.appendChild(iframe); });</code>
A jQuery- alternatif berasaskan ialah menggunakan kaedah append() untuk menambah iframe pada badan.
<code class="javascript">$.post('/create_binary_file.php', postData, function(retData) { $("body").append("<iframe src='" + retData.url+ "' style='display: none;' ></iframe>"); });</code>
Kedua-dua penyelesaian bergantung pada andaian bahawa respons POST termasuk sifat 'url' menunjuk ke fail yang boleh dimuat turun. Apabila iframe ditambahkan pada halaman dengan URL itu, penyemak imbas memintas permintaan dan menggesa pengguna untuk memuat turun fail. Pendekatan ini memerlukan konfigurasi jenis MIME yang betul pada pelayan web.
Walaupun penyelesaian ini menyediakan pendekatan yang berdaya maju untuk memuat turun fail melalui permintaan POST, adalah penting untuk mempertimbangkan kemungkinan had dan kelemahan, terutamanya apabila berurusan dengan fail yang lebih besar. Selain itu, mungkin perlu untuk melaksanakan fungsi tambahan dalam pengendali kejayaan AJAX untuk membolehkan pengendalian ralat dan memberikan maklum balas kepada pengguna.
Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail melalui POST dengan JSON dalam JavaScript/jQuery?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!