Apakah ada cara untuk membuat parameter kueri untuk melakukan permintaan GET dalam JavaScript?
Sama seperti di Python yang Anda miliki urllib.urlencode()
, yang menggunakan kamus (atau daftar dua tupel) dan membuat string seperti 'var1=value1&var2=value2'
.
javascript
url
urlencode
cnu
sumber
sumber
for
, gunakan hasOwnProperty untuk memastikan interoperabilitas.URLSearchParams telah meningkatkan dukungan browser.
Node.js menawarkan modul querystring .
sumber
searchParams.append(otherData)
fungsional
sumber
var data = { bloop1: true, bloop2: "something" }; var url = "https://something.com/?"; var params = encodeData(data); var finalUrl = url + params; // Is this the right use?
Haruskah menghasilkanhttps://www.something.com/?bloop1=true&bloop2=something
?Zabba telah memberikan komentar tentang jawaban yang saat ini diterima sebagai saran bahwa bagi saya adalah solusi terbaik: gunakan jQuery.param () .
Jika saya menggunakan
jQuery.param()
data dalam pertanyaan awal, maka kodenya adalah:Variabelnya
params
adalahUntuk contoh yang lebih rumit, input dan output, lihat dokumentasi jQuery.param () .
sumber
Kami baru saja merilis arg.js , sebuah proyek yang ditujukan untuk menyelesaikan masalah ini untuk selamanya. Secara tradisional sudah sangat sulit tetapi sekarang Anda dapat melakukannya:
Dan membaca bekerja:
atau mendapatkan semuanya:
dan jika Anda peduli tentang perbedaan antara
?query=true
dan#hash=true
kemudian Anda dapat menggunakanArg.query()
danArg.hash()
metode.sumber
Ini harus melakukan pekerjaan:
Contoh:
Hasil:
sumber
encodeURIComponent()
bukanencodeURI
. Baca tentang perbedaannya .ES2017 (ES8)
Memanfaatkan
Object.entries()
, yang mengembalikan array[key, value]
pasangan objek. Misalnya, untuk{a: 1, b: 2}
itu akan kembali[['a', 1], ['b', 2]]
. Itu tidak didukung (dan tidak akan) hanya oleh IE.Kode:
Contoh:
Hasil:
sumber
Jika Anda menggunakan Prototipe ada Form.serialize
Jika Anda menggunakan jQuery ada Ajax / serialize
Saya tidak tahu ada fungsi independen untuk melakukan ini, tetapi, pencarian google untuk itu muncul beberapa opsi yang menjanjikan jika Anda saat ini tidak menggunakan perpustakaan. Jika Anda tidak, Anda harus melakukannya karena itu surga.
sumber
Hanya ingin meninjau kembali pertanyaan berusia hampir 10 tahun ini. Di era pemrograman di luar rak, taruhan terbaik Anda adalah mengatur proyek Anda menggunakan dependency manager (
npm
). Ada seluruh industri rumahan perpustakaan di luar sana yang menyandikan string kueri dan menangani semua kasus tepi. Ini adalah salah satu yang lebih populer -https://www.npmjs.com/package/query-string
sumber
Sedikit modifikasi pada naskah:
sumber
Utas ini menunjuk ke beberapa kode untuk keluar dari URL di php. Ada
escape()
danunescape()
yang akan melakukan sebagian besar pekerjaan, tetapi Anda perlu menambahkan beberapa hal tambahan.sumber