Artikel ini menjelaskan fungsi pelarian yang memecahkan masalah kode kacau di Ajax di Js., Dan itu dibagikan kepada Anda untuk referensi Anda. Metode spesifiknya adalah sebagai berikut:
1. Deskripsi Masalah:
Awalnya, Escape () di halaman web Efek Khusus URL yang dikodekan dalam bahasa Cina sesuai dengan set karakter ISO-8859-1. Dengan cara ini, parameter permintaan dapat secara langsung diperoleh melalui request.getParameter (), tetapi kemudian JavaScript diganti Escape () dengan pengkodean set karakter Unicode. Dengan cara ini, parameter permintaan tidak dapat diperoleh secara langsung dalam tutorial dan servlet JSP, dan saya tidak tahu alasan spesifik.
2. Solusi:
1. Pertama, encode karakter Cina dua kali. Jika Anda ingin meneruskan nama parameter dan nilainya adalah "Hello", format URL adalah .... Name = Escape (Escape ("Hello")). Dengan cara ini, parameter yang dikodekan dapat diperoleh di request.getParameter ().
2. Karena parameter yang diperoleh berada dalam format %25U4F60 %25U597D, tidak mungkin untuk menggunakan urldecoder.decode () reguler untuk memecahkan kode. Untungnya, ada cukup banyak orang di dunia ini. Saya langsung menemukan kelas alat di internet yang dapat mengimplementasikan Escape () dan Unescape ()-Style Codec di JavaScript.
Salin kode sebagai berikut: <bahasa skrip = "javascript">
function get (id) {return document.getElementById (id) .value}
pengaturan fungsi ()
{
var xmlhttp;
if (window.activexObject)
{
xmlhttp = ActivexObject baru ("microsoft.xmlhttp")
}kalau tidak{
xmlhttp = new xmlHttpRequest ();
}
xmlhttp.onreadystatechange = function ()
{
if (xmlhttp.readystate == 4)
{
if (xmlhttp.status == 200)
{
Peringatan ("Sukses!")
}kalau tidak{
peringatan (xmlhttp.status)
}
}
}
var url = "action.asp tutorial? action = pengaturan & rnd ="+math.random ()
xmlhttp.open ("post", url, true)
var senddate ="title="+escape(get("title"))+"&conn_way="+escape(get("conn_way"))+"&databasename="+escape(get("databasename"))+"&sqlusername="+escape(get("sqlusername"))+"&sqlpassword="+esc APE (get ("sqlpassword"))+"& sqlllocalname ="+Escape (get ("sqlllocalname"))+"& pg_size ="+Escape (get ("pg_size"))+"& adminid ="+Escape (get ("adminid"))+"; AdminPwd ="
2727 xmlhttp.setRequestHeader ('tipe konten', 'Aplikasi/X-WWW-Form-Urlencoded');
xmlhttp.send (sendDate)
}
</script>
Dalam contoh di atas, kami hanya menggunakan fungsi Escape dalam bahasa Cina, dan sintaksnya adalah sebagai berikut:
Definisi dan Penggunaan:
Fungsi Escape () mengkodekan string sehingga string dapat dibaca di semua komputer.
tata bahasa:
Escape (String) Deskripsi Parameter
string dibutuhkan. String yang harus dilolos atau dikodekan.
Nilai pengembalian:
Salinan string yang dikodekan. Beberapa karakter ini diganti dengan urutan pelarian heksadesimal.
menjelaskan:
Metode ini tidak menyandikan huruf dan angka ASCII, juga tidak menyandikan tanda baca ASCII berikut: - _. Lai ~ * '(). Semua karakter lain akan diganti dengan urutan yang melarikan diri.
Kiat dan Komentar:
Tip: unescape () dapat digunakan untuk memecahkan kode pelarian () string yang dikodekan.
CATATAN: ECMASCRIPT V3 menentang penggunaan metode ini, dan aplikasi menggunakan decodeuri () dan decodeuricomponent () bukannya
Saya harap artikel ini akan membantu pemrograman JavaScript semua orang.