Saya mencoba mengirim pesan GET yang berisi string dengan ampersand dan tidak dapat menemukan cara untuk menghindari ampersand di URL.
Contoh:
http://www.example.com?candy_name=M&M
result => candy_name = M
Saya juga mencoba:
http://www.example.com?candy_name=M\&M
result => candy_name = M\\
Saya menggunakan URL secara manual, jadi saya hanya perlu karakter yang benar.
Saya tidak bisa menggunakan perpustakaan apa pun. Bagaimana itu bisa dilakukan?
http
url
get
query-string
query-parameters
tomermes
sumber
sumber
A potentially dangerous Request.Path value was detected from the client (&).
Ini tidak hanya berlaku untuk ampersand di URL, tetapi untuk semua karakter yang dipesan . Beberapa di antaranya meliputi:
Idenya sama dengan pengkodean
&
dalam dokumen HTML, tetapi konteksnya telah berubah menjadi di dalam URI, selain berada di dalam dokumen HTML. Jadi, pengkodean persen mencegah masalah dengan penguraian di dalam kedua konteks.Tempat ini sangat berguna adalah ketika Anda harus meletakkan URL di dalam URL lain. Misalnya, jika Anda ingin memposting status di Twitter:
Ada banyak karakter yang dipesan di Tweet saya, yaitu
?'():/
, jadi saya menyandikan seluruh nilaistatus
parameter URL. Ini juga sangat membantu ketika menggunakanmailto:
tautan yang memiliki badan atau subjek pesan, karena Anda perlu menyandikanbody
dansubject
parameter untuk menjaga garis putus, ampersand, dll utuh.http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters
sumber
! ' ( ) *
bukan URL yang disandikanencodeURIComponent
.Coba gunakan
http://www.example.org?candy_name=M%26M
.Lihat juga referensi ini dan beberapa informasi lebih lanjut di Wikipedia .
sumber
Anda dapat menggunakan% karakter untuk 'melarikan diri' karakter yang tidak diizinkan dalam URL. Lihat [RFC 1738].
Tabel nilai ASCII di http://www.asciitable.com/ .
Anda dapat melihat
&
26 dalam heksadesimal - jadi Anda membutuhkan M% 26M.sumber
Ini dapat membantu jika seseorang menginginkannya dalam PHP
sumber
Jika Anda tidak dapat menggunakan pustaka apa pun untuk menyandikan nilai, http://www.urlencoder.org/ atau http://www.urlencode-urldecode.com/ atau ...
Cukup masukkan nilai Anda "M&M", bukan URL lengkap ;-)
sumber
Saya ingin menambahkan komentar kecil pada solusi Blender.
Anda dapat melakukan hal berikut:
Keluaran itu:
Hal yang hebat tentang ini tidak hanya bekerja untuk & tetapi untuk karakter utama.
Misalnya:
Output:
sumber
Anda bisa meneruskan argumen Anda menggunakan fungsi komponen encodeURIC ini sehingga Anda tidak perlu khawatir melewati karakter khusus apa pun.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
sumber