Izinkan saya berbicara dulu tentang masalah yang kita hadapi hari ini.
Proses mengekspor excel memerlukan transfer data dalam jumlah besar ke latar belakang setelah menekan tombol.
Copy kode kodenya sebagai berikut:
var actionUrlSetData = "****Action!exportDatas.action"+ "?now=" + Tanggal baru().getTime();
window.location.href= actionUrl + "&" + data;
Data di atas adalah string yang sangat panjang.
Tidak ada masalah di Firefox dan Google Chrome, tetapi tidak bisa diekspor secara normal di IE9 (Saya belum mencobanya di IE lain, seharusnya sama).
Alasan terjadinya masalah ini adalah karena browser yang berbeda memiliki batasan panjang yang berbeda untuk penguraian URL. IE memiliki yang terkecil, jadi ada yang tidak beres.
Microsoft Internet Explorer (Peramban)
Batas maksimum URL di browser IE adalah 2083 karakter. Jika jumlah ini terlampaui, tombol kirim tidak akan merespons.
Firefox (Peramban)
Batas panjang URL untuk browser Firefox adalah 65.536 karakter
Safari (Peramban)
Batas maksimum panjang URL adalah 80.000 karakter.
Opera (Peramban)
Batas maksimum panjang URL adalah 190.000 karakter.
Google (krom)
Panjang maksimal url dibatasi 8182 karakter
Perhatikan juga di sini bahwa server WEB juga memiliki batasan panjang URL! !
Oleh karena itu, kami tidak dapat menggunakan metode Dapatkan. Kami hanya dapat menemukan cara menggunakan post untuk meneruskan nilai, jadi kami memiliki solusi berikut Singkatnya, fungsinya dapat direalisasikan.
Idenya adalah menggunakan post untuk mentransfer string panjang ke latar belakang, menyimpannya di sesi, dan kemudian menggunakan window.location.href dalam metode post callback.
Kodenya adalah sebagai berikut:
Copy kode kodenya sebagai berikut:
$.post(actionUrlSetData,mapList,fungsi(){
var actionUrl = jalur + "/***action!exportDatas.action"+ "?now=" + Tanggal baru().getTime();
window.location.href= actionUrl + "&" + (data);
});