我正在使用Ajax来获取一些数据。问题是ajax请求来自悬停按钮,因此很容易向该请求发送垃圾邮件,这可能导致error 404 or error 500失败。这是我的ajax代码:

$.ajax({
          url: location.origin+'/getcat',
          data : {
                   't': id
                 },
          success: function(){ alert("I'm handsome"); }
});


问题是如何防止此垃圾邮件请求?

最佳答案

您可以使用setTimeout()来实现:

$(document).ready(function(){
var timer;
var delay = 1000;
    $("p").hover(function(){
        timer = setTimeout(function() {
        console.log("Requesting")
        $.ajax({
                  url: location.origin+'/getcat',
                  data : {
                           't': id
                         },
                  success: function(data){
                        alert('Im handsome');
                      }
                  });
        }, delay);
        }, function(){
        clearTimeout(timer);
        console.log("Canceled request")
    });
});

10-04 16:42