javascript – AJAX请求 – 添加额外的GET请求内部循环

我在顶部有一个按钮,显示一个模态窗口以启动VOIP呼叫 – 最终目的是调用列表中的第一个数字,然后调用第二个数字,依此类推.我有它工作,它显示模态窗口,并允许我发起呼叫列表中的第一个数字.

我现在需要更新脚本,以便在调用成功的情况下,然后在循环中发出另一个AJAX请求,每5秒检查一次调用的状态.如果第一次调用成功,它将返回我存储在httpResponseText变量中的以下内容

Authentication accepted

我需要解析ActionID值 – 在上面的示例中这将是Jo9oACY52cp1 – 然后通过传递ActionID获得另一个GET请求以获取当前调用的状态,如下所示:

https://www.acme.com/GetStatus.PHP?ActionID=$action_id

此请求返回3个值 – ActionID,UID,STATUS – 如下所示:

xshsJ6Y2eLDC,1500806656.160,ANSWER

我只对第三个值 – STATUS感兴趣 – 我需要继续检查此请求的结果,直到Status不等于IN_PROGRESS.此时我可以启用“下一个呼叫”按钮并重新开始.

这是我当前的表格和脚本:

$("#startBulkContactCall").click(function() {
  $(this).attr('selectedRow','1');
  contactMobile = $($($('table > tbody > tr:nth-child(1) > td:nth-child(2)').children())[0]).attr('contactMobile');
  contactName = $($($('table > tbody > tr:nth-child(1) > td:nth-child(2)').children())[0]).attr('contactName');
  $('#callNextBulkContact').prop('disabled',true);
  firstURL = "PHP echo $callBackURL ;?>" + defaultCallBackNumber + "PHP echo $contactCallBack ;?>" + contactMobile;
  console.log('firstURL: ' + firstURL);
  $.ajax({
      url: "PHP echo $callBackURL ;?>" + defaultCallBackNumber + "PHP echo $contactCallBack ;?>" + contactMobile,data: {},type: "GET"
    })
    .then(function(data,status,xhr) {
      var httpStatus = status;
      var httpResponseCode = (xhr.status);
      var httpResponseText = (xhr.responseText);
      $('#ajaxSuccessBulk').html('Call in Progress').show();
      $("#startBulkContactCall").prop("disabled",true);
      $("#callNextBulkContact").prop("disabled",true);
    })
    .fail(function(xhr) {
      var httpStatus = (xhr.status);
      var httpResponseCode = (xhr.getAllResponseHeaders);
      var httpResponseText = (xhr.responseText);
      var ajaxError = 'There was an error requesting the call back. HTTP Status: ' + httpStatus + ' ' + httpResponseText;
      //make alert visible 
      $('#ajaxError').html(ajaxError).show();
    })
});

$('#callNextBulkContact').click(function() {
  $('#callBulkContact').attr('selectedRow',parseInt($('#callBulkContact').attr('selectedRow')) + 1);
  var rowNum = parseInt($('#callBulkContact').attr('selectedRow'));
  var row = 'table > tbody > tr:nth-child(' + rowNum + ') > td:nth-child(2)';
  contactMobile = $($($(row).children())[0]).attr('contactMobile');
  contactName = $($($(row).children())[0]).attr('contactName');
});