ขนาดโพสต์คำขอมีจำกัด

เรามีแบบฟอร์มอินพุตขนาดใหญ่พร้อมแท็บที่สร้างด้วย jquery หลายแท็บ จำนวนมาก และฟิลด์ที่ซ่อนอยู่ ตราบใดที่คำขอโพสต์ทั้งหมดจากเบราว์เซอร์ไปยังเซิร์ฟเวอร์มีเครื่องหมายน้อยกว่า 32xxxx ทุกอย่างเป็นไปด้วยดีและฟิลด์ทั้งหมดจะถูกส่งไปยังเซิร์ฟเวอร์

โครงสร้างของแบบฟอร์มของเรา:

  • ข้อมูล (jquery ที่สร้างขึ้น)
  • ฟิลด์ที่ซ่อนอยู่และฟิลด์อินพุต (jquery ที่สร้างขึ้น) ภายในแท็บ
  • ช่องที่ซ่อนอยู่ในแบบฟอร์มด้านล่างให้แน่นเข้าโปรแกรม

ดังนั้นตอนนี้แท็บ ฟิลด์ที่ซ่อน jquery และฟิลด์ jquery-input จะถูกเขียนใน post-reqeust แต่จะถ่ายโอนฟิลด์ที่ซ่อนไว้เป็นระยะ ๆ เฉพาะเมื่อความยาวทั้งหมดของคำขอมากกว่าเครื่องหมาย 32xxxx นี่ค่อนข้างน่าทึ่ง ดังนั้นบางฟิลด์จึงหายไปหลังจากการส่งไปยังเซิร์ฟเวอร์ในสตรีมหลังคำขอ

จากเซิร์ฟเวอร์ แบบฟอร์มจะถูกกรอกและแสดงในแบ็กเอนด์ของ Joomla และนั่นก็ไม่ใช่ปัญหา จากนั้นฉันก็เปลี่ยนบางสิ่งบนแท็บ (ชื่อ div) หรือเนื้อหา (ul - li ... ประเภทอินพุต ... ) และส่งทั้งหมดกลับไปที่เซิร์ฟเวอร์ และตอนนี้ไม่ได้รับเนื้อหาทั้งหมดอีกต่อไป เมื่อคุณก่อนที่จะส่งให้ตรวจสอบเนื้อหาใน DOM อีกครั้ง ฟิลด์แบบฟอร์มทั้งหมดจะถูกกรอกอย่างถูกต้องและไม่มีสิ่งใดถูกตัดออก ดังนั้น jquery ที่นี่จึงทำงานได้อย่างไร้ที่ติ

ในช่องประเภทอินพุต นวนิยายทั้งเล่มจะมีข้อความที่ยาวมาก ซึ่งมักจะถูกถ่ายโอนกลับไปยังเซิร์ฟเวอร์อย่างสมบูรณ์ แต่จะตัดเบราว์เซอร์ออกซึ่งอาจเป็นประเภทอินพุตอื่น ๆ และสิ่งเหล่านี้จะถูกถ่ายโอนไปยังเซิร์ฟเวอร์เป็นระยะ ๆ หากขนาดคำขอมากกว่าเครื่องหมาย 32xxxx

คุณมักจะได้ยินเกี่ยวกับข้อจำกัดของค่าฟิลด์อินพุต​​ แต่อย่าคิดว่ามันจะเหมือนกับช่องป้อนข้อมูลที่ไม่ได้กระทำ

แบบฟอร์มผู้ดูแลระบบ Joomla:

form action = "... our action ..." method = "post" name = "admin form" id = "profile-form" class = "form-validate"

มันคืออะไร? เราจะบรรลุเป้าหมายได้อย่างไรว่าทุกช่องของแบบฟอร์มทั้งหมดโดยคลิกที่ปุ่มส่งจะโอนย้ายต่อไป


person s681562    schedule 05.12.2012    source แหล่งที่มา


คำตอบ (1)


  1. จะทำให้แน่ใจว่าเซิร์ฟเวอร์ของฉันไม่ปฏิเสธขนาดของคำขอหรือตัดทอน
  2. จะทำให้แน่ใจว่าการตั้งค่า php ของฉันถูกต้อง post_max_size 20M (ค่าเป็นตัวอย่างที่ชัดเจน)
  3. หากปัญหายังคงมีอยู่ ฉันจะแบ่งพาร์ติชันคำขอและส่งเซ็กเมนต์เล็กๆ (จริงๆ แล้วค่อนข้างง่ายที่จะทำ) แต่ฉันค่อนข้างแน่ใจว่าการตรวจสอบเซิร์ฟเวอร์และการตั้งค่า php จะช่วยแก้ไขปัญหาได้ ;)
person ptheofan    schedule 07.06.2013