我遇到了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值代表什么以及我如何找到这个问题的确切原因?