خلفية:
عند القيام بمهمة اليوم ، عند استخدام jquery's Ajax لتمرير سلسلة طويلة من الأحرف ، لم ينجح التحقق من الخلفية. بعد التحقق من الصباح ، اتضح أن هناك رقم+في السلسلة التي أنشأتها ، وعندما مرت JS ، كنت أفهمها كحرف اتصال.
سبب:
بعد JS ، تحليل الأحرف الخاصة تلقائيًا ، مثل رقم+هو الموصل ، والتحليل كمساحة ، وهو موصل متغير ، لا تعرض البيانات الموجودة على الخادم البيانات بعد تلقي البيانات ، وما إلى ذلك.
حل:
1. ضع الأحرف في النموذج ، ثم أرسل نموذج النموذج إلى الخادم باستخدام JS.
2. استبدل الشخصيات الخاصة في الأحرف إلى الطابع السداسي.
| + | فضاء | / / / | ما هو أكثر؟ | ٪ | & & | = | # # |
| ٪ 2 ب | ٪ 20 | ٪ 2F | ٪ 3F | ٪ 25 | ٪ 26 | و 3D | ٪ثلاثة وعشرين |
str. str.place (//+/g ، "٪ 2b") ؛
3. أبسط واحد هو استخدام وظيفة EncodeUricomponent ().
لن تقوم هذه الطريقة بتشفير أحرف وأرقام ASCII ، ولن ترمز إلى رموز علامات الترقيم ASCII: -_.! ~ * '().
يتم استبدال شخصيات أخرى (مثل: ؛/؟:@& =+$ ، #رموز علامات الترقيم لفصل مكونات URI) بواحدة أو أكثر من تسلسل انتقال سداسي عشري.