qq_41265012
2021-06-10 20:40
采纳率: 95.5%
浏览 43

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")
         

    打赏 评论
  • CSDN专家-Time 2021-06-10 20:45

    在后台做处理,如果存在这样的一条数据,就不进行插入。

    打赏 评论
  • 有问必答小助手 2021-06-11 10:19

    您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

    如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

    ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

    打赏 评论

相关推荐 更多相似问题