我在微信浏览器使用提交form表单时,有时候
会提交两次,第一次有数据,第二次没有数据,后台也拦截到两次请求,第二次因为没有数据就会报错。请问什么情况下会出现这种情况,怎么解决
怎么提交的?直接form提交还是ajax?猜测是网速慢,第一次提交时ui跳转过去用户又点击了一次什么的
而且你怎么知道是连续提交2次?说不定是第一次提交js没加载完毕没有输入内容直接提交没触发js验证什么的
你默认禁用提交按钮,等window.onload事件中间按钮设置为可用试试
楼主的问题解决了么?最近也遇到了这个问题,怎么查找原因都找不到,郁闷死,有人说用ajax提交表单,难道非要把所有的表单修改成ajax提交?
楼主的问题解决了么?最近也遇到了这个问题,怎么查找原因都找不到,郁闷死,有人说用ajax提交表单,难道非要把所有的表单修改成ajax提交?
提供一种可以解决但不是很好的解决办法, 前台表单里面的数据肯定有数据库中一定要有的,不是后台新加的,如我的份数copy,你在插入数据库前判断下,如果copy为空就不插入了,
public int insert(PublicRaiseRecord publicRaiseRecord) {
logger.info(publicRaiseRecord.toString());
//判断是否份数copy是否为空,为空则不执行添加
if(publicRaiseRecord.getCopy()!=null&&!"".equals(publicRaiseRecord.getCopy())){
publicRaiseRecord.setId(UUID.randomUUID().toString());
//本系统内的订单号
publicRaiseRecord.setOrderId(NumberUtil.getOrderId());
//订单状态 0:支持中
publicRaiseRecord.setOrderStatus("0");
//支付状态 0:支持中
publicRaiseRecord.setPayStatus("0");
publicRaiseRecord.setCreatetime(DateUtil.Time2String(new Date()));
logger.info("创建新众筹记录");
}
return publicRaiseRecordMapper.insert(publicRaiseRecord);
}
微信浏览器向后台发送请求后 如果10秒没有得到响应的话 ,浏览器自己会发第二次请求。。。我代码里面是自己加了相应的处理的,这个firedebug也捕捉不到
,pc段浏览器 一般的是120秒所以之前没碰到过这种问题
我也遇到这个问题,我原来用的是Sunny-Ngrok(https://www.ngrok.cc/)做的内网映射工具,后来换成了Ngrok(https://ngrok.com/)后,一点问题都没有,
所以,如果你也遇到这个问题,试试看吧!
在js做个控制就好了 我遇到的问题是 post提交变成了get!不知道这是什么原因
我觉得可以选择打印调试,从而解决问题
post变成get,post数据提交不到服务器,多半是在提交的连接请求中调用了微信的授权登录接口,调用授权登录过程中微信会在授权后会才又定向到原请求地址,这是的定向就变成普通的get连接请求了。