关于 jq $.ajax 会重复响应是怎么一个回事? 按钮里有ajax请求。 按钮按下60秒内disabled为true。 但是我在后台日记发现用户会多次请求ajax,不是同时请求而是,一个请求完后会再次请求。大概在2分钟内一直连续请求这个后台接口。这是怎么一回事?ajax 的返回状态是200 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、先用async: false, 先修改为同步试试;2、var asyNo = 0;if(asyNo == 0){$.ajax({ beforeSend: function(XMLHttpRequest){ asyNo = 1; }, success: function(data, textStatus){ asyNo = 0; }}); 这个没用他是 第一个ajax 走完php 返回后 再次响应ajax function get_verification_code() { var mobile = $("input[name=mobile]").val(); if(mobile=='' || mobile==null || mobile==undefined){ alert('手机号不能为空!'); return ; } var isMobile=/^(?:13\d|14\d|15\d|17\d|18\d)\d{5}(\d{3}|\*{3})$/; if(!isMobile.test(mobile)){ alert('手机号格式不对!'); return ; }; //alert("验证码正在发送中,请您耐心等待!"); $('#get_verfication').attr("disabled",true); var countDownOb; var countDownTime=60; countDownOb=setInterval(function(){ $("#get_verfication").val(countDownTime--); if(countDownTime<=0){ $('#get_verfication').attr("disabled",false); $("#get_verfication").val("获取验证码"); countDownTime=60; clearTimeout(countDownOb); }; },1000); var name = $('input[name=name]').val(); $.ajax({ type:'post', url:"", data:{mobile:mobile,name:name}, dataType:'text', success:function(result){ if(result.search(/error/i)+1) { alert('发送出错:\n'+result); return ; } } }); } 一开始 没限制会一直发短信直到被短信商拉黑后来在php限制时间第一次 我后端限制30秒内直接return 第二次我后端限制60秒内直接return 然后发现 都是会在2分钟内重复请求但是 我自己手机试是正常的 没有过重复请求 但是 我收到反馈 有些客户才会重复发送ajax请求 安卓和苹果都有 js 在4楼这个没问题,事件绑定呢?php? 上面有数据日记截图 会不会是因为你后台设置了60秒返回,js的button设置也是60秒重新获取加上ajax请求时间,然后就是后台还没返回验证码按钮已经是可点击状态了,用户又点击了一次获取,这样才符合你说的两分钟多次获取。 这个你最好不要用setInterval来做,1、当第一次点击时前后端都记录下当前时间。2、前端disabled btn不能点击,后台记录时间,防止用户刷新后点击callback。另外,你是怎么区分,有些客户才会重复发送ajax请求,是自动还是用户自己行为的呢? 我在ajax 加了async: false 先试几天看下有没有 重复响应的反馈 我在ajax 加了async: false 先试几天看下有没有 重复响应的反馈async: false 不一定有效,2,肯定有效,很多项目我都是这么写的。 不是 JS 是设置60秒一个显示的倒计时 和60秒内不能按 之前我js 设置60秒 php 设置30秒内查重 它也一样重复请求 后台我是每次进入函数就写日记 查看重复 如果这个手机号请求离上次请求小于60才直接返回 不去发验证码 谢谢建议 我的确没想到这点。不过现在 我在php 设置日记查重 发现小于60间隔直接返回错误 60秒内不能发送 重复发送说明function调用了多次,存在问题是按钮事件绑定了多次或者什么地方多次调用function. 整个页面就 一个按钮有 onclick="get_verification_code()" 本来是悬浮框形式的 我还特地改成新页面去显示绑定手机页面 我在ajax 加了async: false 先试几天看下有没有 重复响应的反馈async: false 不一定有效,2,肯定有效,很多项目我都是这么写的。好的 我用beforeSend 设置临界值了 让它变成临界区 只有一个ajax执行 试试看几天看反映 我也怀疑 因为 自己怎么试都不会出现重复情况 只有1线人员反馈 我查数据看发现那就果断用一个flag,,标记一下ajax的状态,默认flag为true,一旦进入方法就让flag为false,,,直到方法相应处理结束,再还原flag的状态。 我也怀疑 因为 自己怎么试都不会出现重复情况 只有1线人员反馈 我查数据看发现那就果断用一个flag,,标记一下ajax的状态,默认flag为true,一旦进入方法就让flag为false,,,直到方法相应处理结束,再还原flag的状态。所以就用 上面webyellow说的 用beforeSend 设置互斥 求助!如何获得这里面的 <A 的集合? 关于动态生成弹出窗口至表单的问题 请高手指教啊? firefox中的对象在那里? jquery求助如何找到table最后一行是第几行 请教如何设置onmouseover才能修改图层的Z值,使该图层在页面最上面显示?? 请看如下代码,为什么会浏览器错误不能显示 如何关闭窗口而没有提示(我的问题与前面的有点不一样,请关注) 急!!请教各位高手。JavaScript编码问题。。 怎样作到点按钮使本身的页面变成新浪,而不是弹出新浪? 求出myArr1的最大值怎样输出myArr2的对应科目 大神们来看看这个json串
2、var asyNo = 0;if(asyNo == 0){
$.ajax({
beforeSend: function(XMLHttpRequest){
asyNo = 1;
},
success: function(data, textStatus){
asyNo = 0;
}
});
这个没用他是 第一个ajax 走完php 返回后 再次响应ajax
function get_verification_code() {
var mobile = $("input[name=mobile]").val();
if(mobile=='' || mobile==null || mobile==undefined){
alert('手机号不能为空!');
return ;
}
var isMobile=/^(?:13\d|14\d|15\d|17\d|18\d)\d{5}(\d{3}|\*{3})$/;
if(!isMobile.test(mobile)){
alert('手机号格式不对!');
return ;
};
//alert("验证码正在发送中,请您耐心等待!");
$('#get_verfication').attr("disabled",true);
var countDownOb;
var countDownTime=60;
countDownOb=setInterval(function(){
$("#get_verfication").val(countDownTime--);
if(countDownTime<=0){
$('#get_verfication').attr("disabled",false);
$("#get_verfication").val("获取验证码");
countDownTime=60;
clearTimeout(countDownOb);
};
},1000);
var name = $('input[name=name]').val();
$.ajax({
type:'post',
url:"",
data:{mobile:mobile,name:name},
dataType:'text',
success:function(result){
if(result.search(/error/i)+1)
{
alert('发送出错:\n'+result);
return ;
}
}
}); }
后来在php限制时间
第一次 我后端限制30秒内直接return
第二次我后端限制60秒内直接return
然后发现 都是会在2分钟内重复请求
但是 我自己手机试是正常的 没有过重复请求 但是 我收到反馈 有些客户才会重复发送ajax请求 安卓和苹果都有
php? 上面有数据日记截图
1、当第一次点击时前后端都记录下当前时间。
2、前端disabled btn不能点击,后台记录时间,防止用户刷新后点击callback。另外,你是怎么区分,有些客户才会重复发送ajax请求,是自动还是用户自己行为的呢?
我在ajax 加了async: false 先试几天看下有没有 重复响应的反馈
我在ajax 加了async: false 先试几天看下有没有 重复响应的反馈async: false 不一定有效,2,肯定有效,很多项目我都是这么写的。
后台我是每次进入函数就写日记 查看重复 如果这个手机号请求离上次请求小于60才直接返回 不去发验证码
谢谢建议 我的确没想到这点。
不过现在 我在php 设置日记查重 发现小于60间隔直接返回错误 60秒内不能发送
我在ajax 加了async: false 先试几天看下有没有 重复响应的反馈async: false 不一定有效,2,肯定有效,很多项目我都是这么写的。好的 我用beforeSend 设置临界值了 让它变成临界区 只有一个ajax执行 试试看几天看反映
我也怀疑 因为 自己怎么试都不会出现重复情况 只有1线人员反馈 我查数据看发现那就果断用一个flag,,标记一下ajax的状态,默认flag为true,一旦进入方法就让flag为false,,,直到方法相应处理结束,再还原flag的状态。
我也怀疑 因为 自己怎么试都不会出现重复情况 只有1线人员反馈 我查数据看发现那就果断用一个flag,,标记一下ajax的状态,默认flag为true,一旦进入方法就让flag为false,,,直到方法相应处理结束,再还原flag的状态。
所以就用 上面webyellow说的 用beforeSend 设置互斥