前后端防重復提交

數據重復提交是一個大忌,會帶來無效數據,應該在前端和后端都建議檢測防范。
前端一般是按鈕按下觸發數據提交,如果用戶鼠標操作習慣不好,或者鼠標或系統設置問題會導致鼠標連擊,如果前端不做相關處理,可能會觸發多次提交操作。
那么怎么處理為好呢?首先,按下按鈕按下事件觸發函數中,可以考慮禁用按鈕,等待提交正常返回后,重置頁面填報項信息,然后再啟用按鈕,如果是錯誤返回,那么提示錯誤信息,可以不重置頁面填報,然后再啟用按鈕。

$("#button_submit").click(()=>{validate_input();$("#button_submit").attr("disabled",true); axios.post(ifurl,jsondata).then(res=> {if (res.data.code=="200") {alert("提交成功");reset_input();$("#button_submit").attr("disabled",false);}else { alert(res.data.msg); $("#button_submit").attr("disabled",false); }}).catch(err => { alert("后端服務器錯,請稍后再提交"); $("#button_submit").attr("disabled",false); });});

當然后端也不能盲目信任前端,還是要采取措施防止前端重復提交無效數據。

...
var lastpost=[];
...
app.post("/postargs", express.json(), (req, res) => {let thispt=Date.now();let chktime=lastpost.find(item=>(item.uid=req.session.user.userid));if (chktime==undefined) { lastpost.push({uid:req.session.user.userid,lastpt:thispt}) }else {if (thispt<chktime.lastpt+500) return(res.json({"msg":"拒上次提交不到半秒,疑似誤連擊,暫不接收本次提交,有疑問請重新提交"}))else { chktime.lastpt=thispt; }}

例子中是拒絕半秒以內的相同用戶的提交,可以根據具體場景調整策略,非登錄情況,可以考慮進入頁面時,向服務器申請獲得一個短時間內有效的ReqID,提交時帶上。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37518.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37518.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37518.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

洞察數據資產的奧秘:深入剖析數據資產在企業運營中的核心作用,提出一套全面、系統的數據資產解決方案,幫助企業實現數據資產的最大化利用和增值

一、引言 在數字化浪潮洶涌的今天&#xff0c;數據已成為企業最寶貴的資產之一。數據資產不僅記錄了企業的歷史運營軌跡&#xff0c;更蘊含著指導未來決策的智慧。然而&#xff0c;如何有效管理、利用這些數據資產&#xff0c;使其轉化為企業的競爭優勢和利潤增長點&#xff0…

Vue3-04_組件基礎_下

props驗證 指的是在封裝組件時對外界傳遞過來的 props 數據進行合法性的校驗&#xff0c;從而防止數據不合法的問題。 使用數組類型的 props 節點的缺點是無法為每個 prop 指定具體的數據類型。 使用對象類型的 props 節點&#xff0c;可以對每個 prop 進行數據類型的校驗&am…

【云服務-5】Elasticsearch

Elasticsearch是什么&#xff1f;和大數據的關系&#xff1f; Elasticsearch 是一個分布式、開源的搜索和分析引擎,建立在 Apache Lucene 庫之上。它的主要特點包括: &#xff08;1&#xff09;快速、可擴展的搜索和分析能力 &#xff08;2&#xff09;支持多租戶和高可用性 …

python--基礎篇--正則表達式--py腳本--題目解答

文章目錄 驗證輸入用戶名和QQ號是否有效并給出對應的提示信息從一段文字中提取出國內手機號碼替換字符串中的不良內容拆分長字符串 驗證輸入用戶名和QQ號是否有效并給出對應的提示信息 """ 驗證輸入用戶名和QQ號是否有效并給出對應的提示信息要求&#xff1a;用…

常用數據庫簡單介紹

1. MySQL 優勢&#xff1a; 開源和免費&#xff1a;MySQL 是一個開源數據庫&#xff0c;擁有龐大的社區支持&#xff0c;易于獲取和使用。性能優秀&#xff1a;對于中小型項目&#xff0c;MySQL 提供了高效的性能和響應速度。跨平臺支持&#xff1a;MySQL 可以在各種操作系統…

扎克伯格抨擊閉源人工智能競爭對手試圖“創造上帝”

Meta 首席執行官馬克-扎克伯格&#xff08;Mark Zuckerberg&#xff09;在周四發表的一篇訪談中談到了他對人工智能未來的看法&#xff0c;他深信"不會只有一種人工智能"。扎克伯格強調了開源的價值&#xff0c;即把人工智能工具交到許多人手中&#xff0c;他還不忘貶…

抖音微短劇小程序源碼搭建:實現巨量廣告數據高效回傳

在數字化營銷日益盛行的今天&#xff0c;抖音微短劇小程序已成為品牌與觀眾互動的新渠道。這些短小精悍的劇目不僅能迅速抓住用戶的注意力&#xff0c;還能有效提升品牌的知名度和用戶黏性。然而&#xff0c;想要充分利用這一營銷工具&#xff0c;關鍵在于如何高效地追蹤廣告數…

堆的 shift down

堆的 shift down 堆(Heap)是一種特殊的完全二叉樹,它通常用于實現優先隊列。在堆中,每個節點的值都大于或等于(在最大堆中)或小于或等于(在最小堆中)其子節點的值。堆的操作包括插入元素(shift up)和刪除元素(shift down 或 bubble down)。 本文將重點介紹堆的 s…

HDFS EC文件損壞恢復方法

HDFS EC低版本存在許多bug&#xff0c;導致文件損壞&#xff0c;這些bug是在一定的條件下才有機率性的錯誤重構。 我們當前版本是3.1.1&#xff0c;使用前已修復部署EC patch了&#xff0c;但還是損壞了文件&#xff0c;而且這些文件是無任何提示異常的。是在進行讀數據的時候…

從0開始學習pyspark--pyspark的啟動模式[第1節]

PySpark是Apache Spark的Python API&#xff0c;它能夠在分布式計算環境中處理大規模數據。PySpark可以在幾種不同的模式下運行&#xff0c;主要包括以下三種&#xff1a; 本地模式&#xff08;Local Mode&#xff09;集群模式&#xff08;Cluster Mode&#xff09;客戶端模式…

springboot中使用springboot cache

前言&#xff1a;SpringBoot中使用Cache緩存可以提高對緩存的開發效率 此圖片是SpringBootCache常用注解 Springboot Cache中常用注解 第一步&#xff1a;引入依賴 <!--緩存--><dependency><groupId>org.springframework.boot</groupId><artifactId…

使用ExpandableListView創建可擴展列表

使用ExpandableListView創建可擴展列表 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將深入探討如何使用Android中的ExpandableListView創建可擴展列…

【linux】gcc快速入門教程

目錄 一.gcc簡介 二.gcc常用命令 一.gcc簡介 gcc 是GNU Compiler Collection&#xff08;GNU編譯器套件&#xff09;。就是一個編譯器。編譯一個源文件的時候可以直接使用&#xff0c;但是源文件數量太多時&#xff0c;就很不方便&#xff0c;于是就出現了make 工具 二.gcc…

vue實現鼠標拖動元素把二級分組放入一級分組

拖動案例demo實現 <template><div><div class"group one-level"><divclass"group-item"v-for"(group, index) in groups":key"group.id"draggable"true"dragstart"dragStart(group, $event)"…

STM32第十一課:ADC采集光照

文章目錄 需求一、ADC概要二、實現流程1.開時鐘&#xff0c;分頻&#xff0c;配IO2.配置ADC工作模式3.配置通道4.復位校準5.數值的獲取 三、需求的實現總結 需求 通過ADC轉換實現光照亮度的數字化測量&#xff0c;最后將實時測量的結果打印在串口上。 一、ADC概要 ADC全稱是A…

【面試系列】Python 高頻面試題

歡迎來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;歡迎訂閱相關專欄&#xff1a; ?? 全網最全IT互聯網公司面試寶典&#xff1a;收集整理全網各大IT互聯網公司技術、項目、HR面試真題. ?? AIGC時代的創新與未來&#xff1a;詳細講解AIGC的概念、核心技術、…

手機數據恢復篇:如何在Android手機上查找和恢復已刪除的文件

移動設備中的回收站已成為 Android 用戶的一項基本功能&#xff0c;它提供了防止意外刪除的安全網。與計算機一樣&#xff0c;移動回收站會臨時存儲已刪除的文件&#xff0c;允許用戶在需要時檢索它們。此功能在當今的數字時代特別有用&#xff0c;因為只需輕輕一按&#xff0c…

SEO與AI的結合:如何用ChatGPT生成符合搜索引擎優化的內容

在當今數字時代&#xff0c;搜索引擎優化&#xff08;SEO&#xff09;已成為每個網站和內容創作者都必須掌握的一項技能。SEO的主要目標是通過優化內容&#xff0c;使其在搜索引擎結果頁面&#xff08;SERP&#xff09;中排名更高&#xff0c;從而吸引更多的流量。然而&#xf…

使用 AutoGen 的 AI 智能體設計模式

1.Auto Gen框架 在Auto中,每種智能體分別扮演不同的角色。 ConversableAgent 作為最高級別的智能體抽象,為所有具體智能體提供了基礎的通信能力。這包括發送和接收信息的能力,以及基于這些信息進行內部狀態更新的能力。所有從這個類派生的智能體都繼承了這些基本功能…

硬件實用技巧:剛撓板pcb是什么

若該文為原創文章&#xff0c;轉載請注明原文出處 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140060334 長沙紅胖子Qt&#xff08;長沙創微智科&#xff09;博文大全&#xff1a;開發技術集合&#xff08;包含Qt實用技術、樹莓派、三維、OpenCV…