Pengajuan formulir berulang adalah masalah paling umum dalam aplikasi web multi-pengguna dan menyebabkan banyak masalah. Ada banyak skenario aplikasi yang mengalami masalah pengiriman duplikat, seperti:
Klik tombol Kirim dua kali. Klik tombol Refresh. Ulangi tindakan sebelumnya menggunakan tombol browser kembali, menghasilkan pengiriman formulir yang berulang. Ulangi formulir pengiriman menggunakan riwayat browser. Permintaan HTTP berulang dari browser.
Beberapa cara untuk mencegah pengajuan formulir yang berulang
1. Nonaktifkan tombol Kirim . Gunakan JavaScript untuk membuat tombol kirim nonaktifkan setelah formulir dikirimkan. Metode ini mencegah pengguna yang tidak sabar mengklik tombol beberapa kali. Tapi ada masalah. Jika klien melarang JavaScript, metode ini tidak valid.Artikel saya sebelumnya mengatakan bahwa menggunakan beberapa plugin jQuery bekerja dengan baik.
2.post/redirect/get Mode . Lakukan pengalihan halaman setelah pengiriman, yang disebut mode pasca-redirect-get (PRG). Singkatnya, ketika pengguna mengirimkan formulir, Anda melakukan pengalihan klien dan pergi ke halaman Informasi Keberhasilan pengiriman.Ini dapat menghindari pengiriman berulang yang disebabkan oleh pengguna yang menekan F5, dan tidak akan ada peringatan tentang pengiriman berulang dari formulir browser, dan juga dapat menghilangkan masalah yang sama yang disebabkan oleh ke depan dan keunggulan browser.
3. Simpan logo khusus di sesi . Ketika halaman formulir diminta, string bendera karakter khusus dihasilkan, yang ada dalam sesi dan ditempatkan di bidang tersembunyi formulir. Saat menerima data formulir pemrosesan, periksa apakah string identifikasi ada dan hapus dari sesi segera, dan kemudian proses data secara normal.Jika Anda menemukan bahwa tidak ada string flag yang valid dalam pengiriman formulir, itu berarti formulir telah diserahkan dan pengajuan ini diabaikan.
Ini memberi aplikasi web Anda lebih canggih perlindungan XSRF.
4. Tambahkan kendala dalam database. Tambahkan kendala unik dalam database atau buat indeks unik untuk mencegah data duplikat. Ini adalah cara paling efektif untuk mencegah pengiriman data yang berulang.Di atas adalah pengantar 4 metode ini. Jika Anda memiliki solusi yang lebih baik, tolong beri tahu saya, dan artikel ini akan diperbarui terus menerus.