ความเป็นมา:
เมื่อทำงานในวันนี้เมื่อใช้ Ajax ของ JQuery เพื่อผ่านอักขระมานานการตรวจสอบพื้นหลังนั้นไม่ประสบความสำเร็จ หลังจากตรวจสอบตอนเช้ามันกลับกลายเป็นว่ามี+หมายเลขในสตริงที่ฉันสร้างขึ้นและเมื่อ JS ผ่านไปฉันจะเข้าใจว่ามันเป็นตัวละครการเชื่อมต่อ
เหตุผล:
หลังจาก JS ให้วิเคราะห์อักขระพิเศษโดยอัตโนมัติเช่น+หมายเลขคือตัวเชื่อมต่อการแยกวิเคราะห์เป็นพื้นที่และเป็นตัวเชื่อมต่อตัวแปรข้อมูลบนเซิร์ฟเวอร์ไม่แสดงข้อมูลหลังจากได้รับข้อมูลและอื่น ๆ
สารละลาย:
1. ใส่อักขระในแบบฟอร์มจากนั้นส่งแบบฟอร์มไปยังเซิร์ฟเวอร์ด้วย JS
2. แทนที่อักขระพิเศษในตัวละครเป็นตัวละครเลขฐานสิบหก
| - | ช่องว่าง | - | มีอะไรอีกบ้าง? | - | - | - | - |
| %2B | %20 | %2F | %3F | %25 | %26 | & 3D | %ยี่สิบสาม |
str = str.replace (//+/g, "%2b");
3. สิ่งที่ง่ายที่สุดคือการใช้ฟังก์ชัน ENCODEURICOMPONENT ()
วิธีนี้จะไม่เข้ารหัสตัวอักษรและตัวเลข ASCII และพวกเขาจะไม่เขียนรหัสเครื่องหมายวรรคตอน ASCII เหล่านี้: -_.! ~ * '()
อักขระอื่น ๆ (เช่น:;/?:@& =+$, #สัญลักษณ์เครื่องหมายวรรคตอนสำหรับการแยกส่วนประกอบ URI) จะถูกแทนที่ด้วยลำดับการเปลี่ยน hexadecimal อย่างน้อยหนึ่งลำดับ