qq_41265012 2021-06-10 20:40 采纳率: 70%
浏览 50
已结题

ajax同时重复请求2次,请问如何限制

<script>
    function viewtopic(paymoney,_aid){
	   var dia=$.dialog({
	        title:'<center>查看权限</center>',
	        select:0,
	        content:'<center><p style="color:red;margin-top:5px;">支付'+paymoney+'积分</p></center>',
	        button:["确认支付","取消"]
	    });
	    dia.on("dialog:action",function(e){
	    	if(e.index==1){
	    		return false;
	    	}
	    	 var _tid=_aid;
			   $.ajax({
			        type:"POST",
			        url:"{url}",
			        data:{tid:_tid},
			        datatype: "text",//"xml", "html", "script", "json", "jsonp", "text".
			        success:function(data){
			        	data=$.trim(data);
			        	if(data==2){
			        		alert('先登录!');
			        	}
			        	if(data==1){
			        		window.location.reload();
			        	}
			        }   ,
			        error: function(){
			            //请求出错处理
			        }
			    });
	        // console.log(e.index)
	    });
	    dia.on("dialog:hide",function(e){
	       // console.log("dialog hide")
	    });
}
</script>

用的zepto.min.js,用户点击确认会出现同时2次的请求,导致每次都消耗2次积分。请问有没有什么办法可以限制同时重复的2次请求,在服务处理没用,是同时插入数据库,都没法做判断。

  • 写回答

3条回答 默认 最新

  • CSDN专家-showbo 2021-06-10 21:01
    关注

    没用过这个dialog,理论上点击确定不会触发2次事件的,加下面黑色的控制试试

        function viewtopic(paymoney, _aid) {
          
            var dia = $.dialog({
                title: '<center>查看权限</center>',
                select: 0,
                content: '<center><p style="color:red;margin-top:5px;">支付' + paymoney + '积分</p></center>',
                button: ["确认支付", "取消"]
            });
            var loading = false;
            dia.on("dialog:action", function (e) {
                if (loading) return false;
                if (e.index == 1) {
                    return false;
                }
                var _tid = _aid;
                loading = true;
                $.ajax({
                    type: "POST",
                    url: "{url}",
                    data: { tid: _tid },
                    datatype: "text",//"xml", "html", "script", "json", "jsonp", "text".
                    success: function (data) {
                        loading = false;
                        data = $.trim(data);
                        if (data == 2) {
                            alert('先登录!');
                        }
                        if (data == 1) {
                            window.location.reload();
                        }
                    },
                    error: function () {
                        loading = false;
                        //请求出错处理
                    }
                });
                // console.log(e.index)
            });
            dia.on("dialog:hide", function (e) {
                // console.log("dialog hide")
         

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月5日
  • 已采纳回答 7月28日

悬赏问题

  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧
  • ¥15 #MATLAB仿真#车辆换道路径规划