jQuery AJAX调用返回HTTP状态0

时间:2018-03-12 23:36:59

标签: javascript jquery ajax

我遇到了Web应用程序的一些用户的问题,这些用户进行了大量的AJAX调用来更新后端数据库。用户将输入/扫描一个新的条形码,当他们跳出字段时,它将调用AJAX请求以通过PHP页面静默更新数据库。

99%的情况下,这种情况有效,但有时用户报告他们收到此错误消息:

There was an error updating the Product Barcode - AJAX Request error. HTTP Status: 0

这是有问题的剧本:

$(document).ready(function() {
  $(".form-control.barcode").change(function() {
    var recid = $(this).closest('td').attr('id');
    var barcode = $(this).val();
    $this = $(this);
    $.post('updateProduct.php', {
      type: 'updateProduct',
      recid: recid,
      barcode: barcode
    }, function(data) {
      data = JSON.parse(data);
      if (data.error) {
        var ajaxError = (data.text);
        var errorAlert = 'There was an error updating the Product Barcode - ' + ajaxError + '. Please contact the IT Help Desk';
        $this.closest('td').addClass("has-error");
        $("#productBarcodeErrorMessage").html(errorAlert);
        $("#productBarcodeError").show();
        return; // stop executing this function any further
      } else {
        $this.closest('td').addClass("has-success")
        $this.closest('td').removeClass("has-error");
      }

    }).fail(function(xhr) {
      var httpStatus = (xhr.status);
      var ajaxError = 'There was an error updating the Product Barcode - AJAX request error. HTTP Status: ' + httpStatus + '. Please contact the IT Help Desk';
      $this.closest('td').addClass("has-error");
      $("#productBarcodeErrorMessage").html(ajaxError);
      $("#productBarcodeError").show();
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>

因此看起来AJAX请求失败并且它返回的HTTP状态为0,这听起来不像有效的HTTP状态(我希望有4xx或500等HTTP状态)。我不确定0值代表什么以及我如何找到这个问题的确切原因?

0 个答案:

没有答案