Saat menggunakan window.location.href, saya ingin meneruskan data POST ke halaman baru yang saya buka. apakah ini mungkin menggunakan JavaScript dan jQuery?
javascript
jquery
Brian
sumber
sumber
window.location.href
melakukan permintaan GET untuk URL baru, bukan POST.Jawaban:
Menggunakan
window.location.href
itu tidak mungkin untuk mengirim permintaan POST.Yang harus Anda lakukan adalah menyiapkan
form
tag dengan bidang data di dalamnya, menyetelaction
atribut formulir ke URL danmethod
atribut ke POST, lalu memanggilsubmit
metode padaform
tag tersebut.sumber
form
, jadi semuanya dikirim bersama secara otomatis?$("#myForm").submit()
. Formulir - yang tidak akan terlihat, dan hanya digunakan untuk mengirimkan nilai dari kode sisi klien Anda, bukan masukan pengguna - tidak akan pernah ditampilkan atau digunakan, dan halaman akan disegarkan.Tambahkan formulir ke HTML Anda, seperti ini:
dan gunakan JQuery untuk mengisi nilai-nilai ini (tentu saja Anda juga dapat menggunakan javascript untuk melakukan hal serupa)
Lalu akhirnya kirimkan formulir
di sisi server Anda seharusnya bisa mendapatkan data yang Anda kirim dengan memeriksa
var1
danvar2
, cara melakukannya tergantung pada bahasa sisi server yang Anda gunakan.sumber
Gunakan file ini: "jquery.redirect.js"
lihat https://github.com/mgalante/jquery.redirect
sumber
Seperti yang dikatakan di jawaban lain, tidak ada cara untuk membuat permintaan POST menggunakan window.location.href, untuk melakukannya Anda dapat membuat formulir dan mengirimkannya segera.
Anda dapat menggunakan fungsi ini:
https://stackoverflow.com/a/133997/2965158
sumber
Jawaban singkatnya: tidak.
window.location.href
tidak mampu melewatkan data POST.Jawaban yang agak lebih memuaskan: Anda dapat menggunakan fungsi ini untuk mengkloning semua data formulir Anda dan mengirimkannya.
submitMe.importFields(form_element);
untuk masing-masing dari tiga formulir yang ingin Anda kirimkan.<input name="email">
in<form name="login">
, nama yang dikirimkan akan menjadilogin_name
.nameJoiner
variabel menjadi sesuatu selain_
agar tidak bertentangan dengan skema penamaan input Anda.submitMe.submit();
sumber
sesederhana ini
Saya harus menyelesaikan ini untuk membuat kunci layar aplikasi saya di mana saya harus meneruskan data sensitif sebagai pengguna dan url tempat dia bekerja. Kemudian buat fungsi yang menjalankan kode ini
sumber
done()
set fungsiwindow.location.href
Sudahkah Anda mempertimbangkan untuk hanya menggunakan Penyimpanan Lokal / Sesi? -atau- Bergantung pada kompleksitas dari apa yang Anda bangun; Anda bahkan dapat menggunakan indexDB.
catatan :
Local storage
danindexDB
tidak aman - jadi Anda ingin menghindari penyimpanan data sensitif / pribadi (misalnya nama, alamat, alamat email, DOB, dll) di salah satu dari ini.Session Storage
adalah opsi yang lebih aman untuk apa pun yang sensitif, itu hanya dapat diakses oleh asal yang mengatur item dan juga membersihkan segera setelah browser / tab ditutup.IndexDB
sedikit lebih [tetapi tidak lebih] rumit dan30MB noSQL database
dibangun di setiap browser (tetapi pada dasarnya bisa tidak terbatas jika pengguna memilih) -> lain kali Anda menggunakan dokumen Google, buka DevTools -> aplikasi -> IndexDB dan mencapai puncaknya. [peringatan spoiler: itu dienkripsi].Berfokus pada
Local
danSession Storage
; keduanya sangat mudah digunakan:Jika sederhana bukanlah hal Anda -atau- mungkin Anda ingin keluar dari jalan raya dan mencoba pendekatan yang berbeda secara bersamaan -> Anda mungkin dapat menggunakan
shared web worker
... Anda tahu, hanya untuk iseng.sumber
Anda dapat menggunakan GET sebagai ganti pass, tetapi jangan gunakan metode ini untuk nilai-nilai penting,
Di CustomerBasket.php
sumber