首页 > 解决方案 > 如何通过鼠标单击来中断 ajax 请求

问题描述

鼠标单击按钮 A 后触发第一个 ajax 请求。根据收到的响应触发另一个 ajax 请求。这另一个请求在 ajaxComplete 事件处理程序中触发。所以我的连续 ajax 请求链运行良好。现在我有一个条件,如果单击按钮 B,我需要打破 ajax 链。

代码在 Chrome 浏览器中运行。对于 Firefox,按钮 B 的 onclick 不会被触发。通用$(document).on('click'..事件也没有被捕获。

$.ajax({
  url: url,
  async: false,
  type: post,
  dataType: dataType,
  data: data,
  success: xyz,
  error: abc
});

...

xyz = function() { binded = true }

...

$(document).ajaxComplete(function() { 
  if(binded || binded=='true') { 
    //fire ajax requests again and again till server gives timeout 
  }
});
$(document).on('click', 'input[id=openApplication]', function(event) { 
  binded = false;
  alert('Breaking ajax loop');
  // do form submit using Input - Sumbit type 
});

标签: javascriptajax

解决方案


推荐阅读