تصف هذه المقالة وظيفة الهروب التي تحل مشكلة الكود المشتعلة في Ajax في JS. ، ويتم مشاركتها معك للرجوع إليها. الطرق المحددة هي كما يلي:
1. وصف المشكلة:
في الأصل ، عنوان URL Escape () في صفحة الويب الخاصة بالمؤثرات الخاصة المشفرة باللغة الصينية وفقًا لمجموعة أحرف ISO-8859-1. وبهذه الطريقة ، يمكن الحصول على معلمات الطلب مباشرة من خلال request.getParameter () ، ولكن في وقت لاحق استبدل JavaScript Escape () بترميز مجموعة أحرف Unicode. وبهذه الطريقة ، لا يمكن الحصول على معلمات الطلب مباشرة في برنامج JSP Tutorial و Servlet ، ولا أعرف السبب المحدد.
2. الحل:
1. أولاً ، تشفير الأحرف الصينية مرتين. إذا كنت ترغب في تمرير اسم المعلمة والقيمة "Hello" ، فإن تنسيق عنوان URL هو .... name = Escape ("Hello")). وبهذه الطريقة ، يمكن الحصول على المعلمات المشفرة في request.getParameter ().
2. نظرًا لأن المعلمات التي تم الحصول عليها في تنسيق ٪ 25u4f60 ٪ 25U597D ، فمن المستحيل استخدام urldecoder.decode () العادية () لفك التشفير. لحسن الحظ ، هناك ما يكفي من الناس في هذا العالم. لقد وجدت مباشرة فئة أدوات على الإنترنت يمكنها تنفيذ برنامج Codec Escape () و unescape () في JavaScript.
انسخ الرمز كما يلي: <script language = "javaScript">
وظيفة الحصول على (معرف) {return document.getElementById (id) .value}
إعداد الوظيفة ()
{
var xmlhttp ؛
if (window.activexobject)
{
xmlhttp = new ActiveXobject ("Microsoft.xmlhttp")
}آخر{
xmlHttp = new xmlhttprequest () ؛
}
XMLHTTP.OnReadyStateChange = function ()
{
if (xmlhttp.readyState == 4)
{
if (xmlhttp.status == 200)
{
تنبيه ("النجاح!")
}آخر{
تنبيه (xmlhttp.status)
}
}
}
var url = "Action.asp Tutorial؟ Action = Setting & rnd ="+Math.Random ()
xmlhttp.open ("post" ، url ، true)
var sendDate = "title ="+Escape (get ("title"))+"& conn_way ="+excart (get ("conn_way"))+"& databasename ="+excart (get ("databasename"))+ APE (get ("sqlpassword"))+"& sqlllocalName ="+Escape (get ("sqlllocalName"))+"& pg_size ="+ecart (get ("pg_size"))+"& addrend ="+excart (get (
2727 XMLHTTP.SetRequestHeader ('نوع المحتوى' ، 'Application/x-www-form-urlencoded') ؛
XMLHTTP.SEND (SendDate)
}
</script>
في المثال أعلاه ، نستخدم وظيفة الهروب باللغة الصينية فقط ، وبناء الجملة كما يلي:
التعريف والاستخدام:
تقوم دالة Escape () بتشفير سلسلة بحيث يمكن قراءة السلسلة على جميع أجهزة الكمبيوتر.
القواعد:
الهروب (سلسلة) الوصف المعلمة
السلسلة المطلوبة. السلسلة المراد هربها أو ترميزها.
قيمة الإرجاع:
نسخة من السلسلة المشفرة. يتم استبدال بعض هذه الشخصيات بتسلسل الهروب سداسي عشري.
يوضح:
لا تشفر هذه الطريقة أحرف وأرقام ASCII ، كما أنها لا تشفر علامات الترقيم ASCII التالية: - _. ! ~ * '(). سيتم استبدال جميع الشخصيات الأخرى بالتسلسلات التي هربت.
نصائح وتعليقات:
نصيحة: يمكن استخدام unescape () لفك تشفير السلاسل المشفرة للهروب ().
ملاحظة: يعارض ECMascript V3 استخدام هذه الطريقة ، ويستخدم التطبيق decodeuri () و decodeuricomponent () بدلاً من ذلك
آمل أن تكون هذه المقالة مفيدة لبرمجة JavaScript للجميع.