ฉันไม่ได้เขียนรหัส JS มาเป็นเวลานานและเพิ่งพบปัญหาดังกล่าว แบบฟอร์มส่วนใหญ่ในระบบของเราไม่ได้ทำเพื่อป้องกันการส่งซ้ำ
เนื่องจากคุณไม่ต้องการประมวลผลบนแบ็กเอนด์หากมีการประมวลผลโดยแบ็กเอนด์คุณต้องให้ค่าโทเค็นครั้งเดียวเมื่อโหลดหน้าเว็บ ไม่เพียง แต่เพิ่มภาระงานในการพัฒนาเท่านั้น แต่ยังง่ายที่จะลืมทำสิ่งนี้ ในเวลาเดียวกัน AJAX ไม่ง่ายที่จะประมวลผล หากคุณต้องการส่งคุณจะส่งคืนค่าโทเค็นใหม่ในเวลาเดียวกัน
ดังนั้นฉันอยากจะทำกับ JS ในความเป็นจริงฉันพูดถึงมันไปที่ส่วนหน้าก่อนหน้านี้ แต่ไม่มีการเคลื่อนไหวเป็นเวลานานดังนั้นฉันต้องได้รับอิฐและโยนมันออกไป แนวคิดคือการเขียนทับ $ .ajax และแก้ปัญหาการป้องกันการส่งซ้ำที่นี่ ในขณะที่การพัฒนาธุรกิจส่วนหน้าจะไม่ได้รับผลกระทบรหัสจะไม่เปลี่ยนแปลงและจะไม่มีการรับรู้
ฉันคิดว่าหนึ่งในวัตถุประสงค์ของสถาปัตยกรรมคือการทำให้การพัฒนาธุรกิจง่ายขึ้นปิดกั้นรายละเอียดที่ไม่ขึ้นกับธุรกิจและอนุญาตให้การพัฒนาแนวหน้าเขียนธุรกิจด้วยความอุ่นใจ
รหัสมีดังนี้:
/*** สร้างโดย Xiayongsheng เมื่อ 2016/6/12.*/; (ฟังก์ชั่น ($) {var ajax = $ .ajax; // คำขอที่ใช้ในการจัดเก็บ ajax var ajaxstate = {}; var kinhomajax = function () {var args = array.prototype.slice.call. ถูกนำออกข้อมูลควรจัดเรียงตามค่าคีย์จากนั้นค่าจะถูกเชื่อมต่อเข้าด้วยกันและค่าที่ได้จาก sha1 จะถูกใช้เป็นลายนิ้วมือ // ใช้ url เป็นลายนิ้วมือแรก var hash = typeof args [0] === 'สตริง'? args [0]: args [0] .url; 3) {Alert ('โปรดอย่าส่งซ้ำ ๆ คำขอกำลังดำเนินการ');} ++ ajaxstate [hash]; return $ .deferred ();} ajaxstate [hash] = 1; var def = ajax.apply ($, args); def.done (ฟังก์ชัน kinhomajax;}) (jQuery);ข้างต้นคือความรู้ที่เกี่ยวข้องเกี่ยวกับวิธีการป้องกันการส่งซ้ำจากคำขอ JS AJAX ที่แนะนำให้คุณรู้จัก ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!