我公司的网站使用 jQuery ajax 提交表单。很大一部分 (5% - 10%) 出现故障,导致 ajax 的错误处理程序在客户端浏览器中运行。错误处理程序如下所示:
$.ajaxSetup({
type: 'post',
error: function (request, textStatus, errorThrown) {
if (developmentMode) return;
$.post('/error/LogAjaxError', { err: 'headers:' + (request.getAllResponseHeaders ? request.getAllResponseHeaders() : '') });
setTimeout(function () {
location.href = (appRoot + 'error/500');
}, 500);
}
});
error/LogAjaxError
成功记录了这些错误,这就是我们知道百分比的方式。现在这不是服务器错误,因为
- 我们正在使用 Elmah(通常效果很好),但没有捕获这些 ajax 调用中的任何错误
- 我们可以看到 ajax 服务器代码运行到最后没有错误,因为它在最后一行添加了一个 db 记录
这也不太可能是网络问题,因为客户端在error/LogAjaxError
几毫秒后成功发送了 ajax 调用。
有谁知道问题可能是什么,因为它似乎不是服务器或网络错误?
大多数客户都使用移动设备。有没有统计数据表明移动设备的 ajax 请求预计会失败的百分比?