POST Permintaan dalam JavaScript Like Borang Penyerahan
Berusaha untuk mengubah hala penyemak imbas ke halaman lain, permintaan GET boleh digunakan, seperti dalam contoh di bawah:
document.location.href = 'http://example.com/q=a';
Walau bagaimanapun, untuk sumber yang memerlukan permintaan POST, pendekatan berbeza diperlukan. HTML boleh digunakan untuk penyerahan statik, seperti yang ditunjukkan:
<form action="http://example.com/" method="POST"> <input type="hidden" name="q" value="a"> </form>
Sebaliknya, penyelesaian JavaScript lebih diutamakan untuk penyerahan dinamik:
post_to_url('http://example.com/', {'q':'a'});
Keserasian merentas pelayar memerlukan komprehensif pelaksanaan. Kod berikut menyediakan penyelesaian yang mudah:
/** * sends a request to the specified url from a form. this will change the window location. * @param {string} path the path to send the post request to * @param {object} params the parameters to add to the url * @param {string} [method=post] the method to use on the form */ function post(path, params, method='post') { // The rest of this code assumes you are not using a library. // It can be made less verbose if you use one. const form = document.createElement('form'); form.method = method; form.action = path; for (const key in params) { if (params.hasOwnProperty(key)) { const hiddenField = document.createElement('input'); hiddenField.type = 'hidden'; hiddenField.name = key; hiddenField.value = params[key]; form.appendChild(hiddenField); } } document.body.appendChild(form); form.submit(); }
Contoh penggunaan:
post('/contact/', {name: 'Johnny Bravo'});
Kaedah ini memastikan lokasi penyemak imbas berubah, mensimulasikan penyerahan borang. Ambil perhatian bahawa semakan hasOwnProperty telah ditambahkan untuk mengelakkan pepijat yang tidak disengajakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Permintaan POST dalam JavaScript Seperti Penyerahan Borang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!