Ajax在运行之前多次失败

时间:2017-09-21 08:42:03

标签: php jquery ajax

我有一个非常烦人的错误。我的AJAX查询在500 GET和POST服务器错误的情况下失败了多达20-30次,但突然间他们工作了。

它似乎是完全随机的,因为有时我会加载页面并且它将在一整天的使用中正常工作,但是第二天它将失败并且我必须捕获并重试它最多30次到让它发挥作用。

AJAX

 function getData(){
//Get Data and build contributions Table
$.ajax({
        url: 'assets/processes/dash/support/get-data.php', // URL of php command
        tryCount : 0,
        retryLimit : 3,
        type: 'POST', //TYPE
        data: {'id': id}, //Variables in JSON FORMAT
        success: function(results) { //SUCCESSFUL REQUEST FUNCTION
          var result = $.parseJSON(results);
          console.log(result);
        },
        error : function(xhr, textStatus, errorThrown ) {
                if (textStatus == 'timeout') {
                    this.tryCount++;
                    if (this.tryCount <= this.retryLimit) {
                        $.ajax(this);
                        return;
                    }            
                    return;
                }
                if (xhr.status == 500) {
                    $.ajax(this);
                    return;
                } else {
                    //handle error
                }
       }
      }); // end ajax call

PHP

 <?php
 include "../../../includes/database.php";
 $totalOpen = $db->pdo_query_assoc("xdGetTotalUnresolvedTickets 
 1,0,0,0,0,0");
 $totalWaitState = $db->pdo_query_assoc("xdGetWaitState 1,0,0,0,0,0");
 $nonWaitState = $totalOpen['xdGetTotalUnresolvedTickets'] - 
 $totalWaitState['xsGetWaitState'];
 $getStaff = $db->query("SELECT * FROM user WHERE role = 'Technical 
 Support'");
 $getStaffArray = array();
  foreach($getStaff as $key => $value){
      $sqlUsername = $value['sqlName'];
      $pdo_today = $db->pdo_query_assoc("xsGetTotalResolvedTicketsToday 
      '$sqlUsername'");
      $start = date('Y-m-d ', strtotime('-7 days'));
      $end = date('Y-m-d ', strtotime('+1 days'));
      $pdo_last_week = $db->pdo_query_assoc("xsGetTotalResolvedTicketsToday 
      '$sqlUsername','$start','$end'");
      $getCompletionRate = $db->pdo_query_assoc('xStaffTicketCompletionRate 
      "'.$sqlUsername.'"');
      $getWeeklyRate = $db->pdo_query_assoc('xLastSevenPreviousSeven 
      "'.$sqlUsername.'"');
      $getStaffArray[$key]['staffName'] = $value['user'];
      $getStaffArray[$key]['staffFullName'] = $value['name'];
      $getStaffArray[$key]['colourScheme'] = $value['colourScheme'];
      $getStaffArray[$key]['today'] = 
      $pdo_today['xsGetTotalResolvedTicketsToday'];
      $getStaffArray[$key]['thisWeek'] = 
      $pdo_last_week['xsGetTotalResolvedTicketsToday'];
      $getStaffArray[$key]['completionRate'] = $getCompletionRate['Level'];
      $getStaffArray[$key]['thisTimeLastWeek'] = 
      round($getWeeklyRate['Percentage'],1);
      $getStaffArray[$key]['weeklyRateLevel'] = $getWeeklyRate['Level'];
      $getStaffArray[$key]['weeklyPrevious7'] = $getWeeklyRate['Previous 7 
      Days'];
      $getStaffArray[$key]['weeklyEarlier7'] = $getWeeklyRate['Earlier 7 
      Days'];
   }
  $tickets = array('totalCurrent' => $totalOpen, 'totalWaitState' => 
  $totalWaitState, 'totalNoneWaitState' => $nonWaitState);
  $allData = array('totalTickets' => $tickets, 'staff' => $getStaffArray);
  echo json_encode($allData, JSON_FORCE_OBJECT);
  ?>

我知道目前trycount无法正常工作,因为它不会尝试3次尝试无限量直到它工作。任何人都有任何关于为什么会发生这种情况的想法?

他们总是在php文件上失败,就像查询无法执行一样。

ERROR

  GET     http://mysite/get-events.php 500 (Internal Server Error)    
  jquery.min.js:4

0 个答案:

没有答案