บทความนี้อธิบายฟังก์ชั่นการหลบหนีการแก้ปัญหาของรหัสที่อ่านไม่ออกใน AJAX ใน JS. และมีการแชร์กับคุณสำหรับการอ้างอิงของคุณ วิธีการเฉพาะมีดังนี้:
1. คำอธิบายปัญหา:
เดิมที Escape () ในเว็บเพจเอฟเฟกต์พิเศษ URL รหัสภาษาจีนตามชุดอักขระ ISO-8859-1 ด้วยวิธีนี้พารามิเตอร์การร้องขอสามารถรับได้โดยตรงผ่าน request.getParameter () แต่ในภายหลัง JavaScript แทนที่ ESCAPE () ด้วยการเข้ารหัสชุดอักขระ Unicode ด้วยวิธีนี้พารามิเตอร์การร้องขอไม่สามารถรับได้โดยตรงในบทช่วยสอน JSP และ servlet และฉันไม่ทราบเหตุผลที่เฉพาะเจาะจง
2. โซลูชัน:
1. อันดับแรกเข้ารหัสอักขระจีนสองครั้ง หากคุณต้องการส่งชื่อพารามิเตอร์และค่าคือ "สวัสดี" รูปแบบของ URL คือ .... name = escape (Escape ("Hello")) ด้วยวิธีนี้พารามิเตอร์ที่เข้ารหัสสามารถรับได้ใน request.getParameter ()
2. เนื่องจากพารามิเตอร์ที่ได้รับอยู่ในรูปแบบของ %25U4F60 %25U597D จึงเป็นไปไม่ได้ที่จะใช้ urldecoder.decode () ปกติเพื่อถอดรหัส โชคดีที่มีคนมากพอในโลกนี้ ฉันพบคลาสเครื่องมือโดยตรงบนอินเทอร์เน็ตที่สามารถใช้ Escape () และ Unsescape ()-Codec สไตล์ใน JavaScript
คัดลอกรหัสดังต่อไปนี้: <ภาษาสคริปต์ = "JavaScript">
ฟังก์ชั่นรับ (id) {return document.getElementById (id) .Value}
การตั้งค่าฟังก์ชัน ()
-
var xmlhttp;
if (window.activexobject)
-
xmlhttp = new ActiveXObject ("Microsoft.xmlhttp"))
}อื่น{
xmlhttp = ใหม่ xmlhttprequest ();
-
xmlhttp.onreadystatechange = function ()
-
if (xmlhttp.readystate == 4)
-
if (xmlhttp.status == 200)
-
แจ้งเตือน ("ความสำเร็จ!")
}อื่น{
การแจ้งเตือน (xmlhttp.status)
-
-
-
var url = "Action.asp Tutorial? action = การตั้งค่า & rnd ="+math.random ()
xmlhttp.open ("โพสต์", url, true)
var senddate = "title ="+escape (get ("title"))+"& conn_way ="+escape (get ("conn_way"))+"& databasename ="+escape (get ("databasename")+"& sqlusername =" Escape (get ("sqlusername") ape (get ("sqlpassword"))+"& sqlllocalname ="+escape ("get (" sqlllocalname "))+" & pg_size = "+escape (get (" pg_size ")+" & adminid = "excel (get (" adminid ")+"
2727 xmlhttp.setrequestheader ('ประเภทเนื้อหา', 'แอปพลิเคชัน/x-www-form-urlencoded');
xmlhttp.send (senddate)
-
</script>
ในตัวอย่างด้านบนเราใช้ฟังก์ชั่น Escape เป็นภาษาจีนเท่านั้นและไวยากรณ์มีดังนี้:
คำจำกัดความและการใช้งาน:
ฟังก์ชั่น Escape () เข้ารหัสสตริงเพื่อให้สตริงสามารถอ่านได้ในคอมพิวเตอร์ทุกเครื่อง
ไวยากรณ์:
คำอธิบายพารามิเตอร์ Escape (String)
จำเป็นต้องใช้สตริง สตริงที่จะหลบหนีหรือเข้ารหัส
ค่าส่งคืน:
สำเนาของสตริงที่เข้ารหัส ตัวละครเหล่านี้บางตัวจะถูกแทนที่ด้วยลำดับ hexadecimal Escape
ภาพประกอบ:
วิธีนี้ไม่ได้เข้ารหัสตัวอักษรและตัวเลข ASCII และไม่มีการเข้ารหัสเครื่องหมายวรรคตอน ASCII ต่อไปนี้: - _ - - อักขระอื่น ๆ ทั้งหมดจะถูกแทนที่ด้วยลำดับที่หลบหนี
เคล็ดลับและความคิดเห็น:
เคล็ดลับ: UNESSECAPE () สามารถใช้เพื่อถอดรหัสสาย Escape () Strings ที่เข้ารหัส
หมายเหตุ: Ecmascript v3 คัดค้านการใช้วิธีนี้และแอปพลิเคชันใช้ decodeuri () และ decodeuricomponent () แทนมัน
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม JavaScript ของทุกคน