尝试仅在发出AJAX请求后POST,但POST仍在触发

时间:2014-12-30 17:38:50

标签: javascript jquery ajax

我想在每次完成ajax请求后发帖..

     jQuery(function($) {
        jQuery(document).ajaxComplete(function() {
            $.post('/wp-admin/admin-ajax.php', {data:'hello'}, function(response) {
                console.log(response);
            });

        });
    }); 

这只是继续射击而不会停止。如果我发出警报,它只会触发两次,因为有两个请求,但由于某种原因,POST会一直触发。

1 个答案:

答案 0 :(得分:2)

来自文档:

  

注册Ajax请求完成时要调用的处理程序。这是   一个AjaxEvent。

很明显,一旦完成邮件请求就会触发一个事件,让你陷入无休止的循环。

你可以使用像

这样的东西
$.get(....).complete(function(){
 $.post('/wp-admin/admin-ajax.php', {data:'hello'}, function(response) {
      console.log(response);
   });
})

如果您希望在发生ajax请求时发生这种情况,则必须将事件侦听器添加到每个请求并在每个$.post中删除它