做机械设计的要知道哪些网站,2003访问网站提示输入用户名密码,中国建设积分商城网站,重庆网站租赁空间数据重复提交是一个大忌#xff0c;会带来无效数据#xff0c;应该在前端和后端都建议检测防范。 前端一般是按钮按下触发数据提交#xff0c;如果用户鼠标操作习惯不好#xff0c;或者鼠标或系统设置问题会导致鼠标连击#xff0c;如果前端不做相关处理#xff0c;可能会…数据重复提交是一个大忌会带来无效数据应该在前端和后端都建议检测防范。 前端一般是按钮按下触发数据提交如果用户鼠标操作习惯不好或者鼠标或系统设置问题会导致鼠标连击如果前端不做相关处理可能会触发多次提交操作。 那么怎么处理为好呢首先按下按钮按下事件触发函数中可以考虑禁用按钮等待提交正常返回后重置页面填报项信息然后再启用按钮如果是错误返回那么提示错误信息可以不重置页面填报然后再启用按钮。
$(#button_submit).click((){validate_input();$(#button_submit).attr(disabled,true); axios.post(ifurl,jsondata).then(res {if (res.data.code200) {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 thisptDate.now();let chktimelastpost.find(item(item.uidreq.session.user.userid));if (chktimeundefined) { lastpost.push({uid:req.session.user.userid,lastpt:thispt}) }else {if (thisptchktime.lastpt500) return(res.json({msg:拒上次提交不到半秒疑似误连击暂不接收本次提交有疑问请重新提交}))else { chktime.lastptthispt; }}例子中是拒绝半秒以内的相同用户的提交可以根据具体场景调整策略非登录情况可以考虑进入页面时向服务器申请获得一个短时间内有效的ReqID提交时带上。