如何在调用AJAX时记录或捕获信息和错误
How to log or capture information and errors when calling AJAX?
我正在寻找一种可以捕获Ajax调用信息的方法。我被要求查看一个使用KnockOut和jQuery/Ajax的小型网站,因为一些最终用户对该网站存在问题,因为该网站只是坐在那里运行processing.gif。
因此,看看开发人员使用jQuery对API进行Ajax调用的代码。我不知道如何捕捉或记录用户正在搜索的内容以及任何错误。
最终用户只是回复我们说,网站只是坐在那里旋转,什么都没发生。他们通常会通过手机发送屏幕截图,至少这样我就能看到他们输入的内容。
如果出现错误,有没有办法停止Ajax调用,向用户显示错误,并希望捕获一些详细的错误信息,我可以去查找?
这里是提交按钮的JS代码
$("#btnSubmit").click(function (event) {
event.preventDefault();
self.validateDate();
self.validateOrigin();
self.srchMessage("No records found.")
var origin = $("#txtOrigin").val();
var destination = $("#txtDestination").val();
var flightDate = $("#txtDate").val();
var flightNo = $("#txtFlightNo").val();
if (flightNo == '') {
flightNo = 'ALL';
}
if (destination == '') {
destination = "ALL";
}
if (origin == '') {
origin = "ALL";
}
if (!self.orginRequired() && !self.dateRequired()) {
var serviceUrl = webApihostName + 'apiflight/v2/flight/' + origin + '/' + destination + '/' + flightNo + '/' + flightDate;
self.progressIcon(true);
self.tblVisible(false);
self.noRecordsMsg(false);
self.flightViewModel.removeAll();
$.ajax({
type: 'GET',
url: serviceUrl,
async: false,
jsonpCallback: 'BindData',
contentType: "application/json",
dataType: 'jsonp',
error: function (e) {
// console.log(e.message);
}
});
}
});
我阅读代码的方式是,它首先设置一些验证JS,并将默认搜索消息设置为"未找到记录"。
然后它查看文本框并获取值或将值设置为"All"。
然后,它创建一个API URI,其中包含名为serviceUrl的信息。
然后它打开progress.gif让用户知道发生了什么,隐藏表格以显示搜索结果,我想还会删除飞行视图模型。
然后它对API进行调用。
但是,如果出现错误,则不会采取任何措施。如果真的有错误,显然是个问题。
我做了一些研究,并在错误部分尝试了以下内容,但在我添加代码后的第二天,用户再次打来电话,提出了同样的问题。
error: function (e, xhr) {
self.progressIcon(false);
self.srchMessage("Error retrieving data. " + xhr.responseText);
self.noRecordsMsg(true);
// console.log(e.message);
}
任何人都有一些关于我如何获取或显示错误信息的例子。我很想用NLog来捕捉它,但我很确定这是不可能的,因为这不会是服务器端的。我也不确定如何强制错误在我的机器上进行本地测试。
这里有一些获取请求错误的技巧。
error: function (xhr, textStatus, errorThrown) {
/**** REPLACE CURRENT DOCUMENT WITH SERVER RESPONSE**/
document.open();
document.write(xhr.responseText);
document.close();
/**** LOGS JSON RESPONSE IF ANY ***/
console.log(xhr.responseJSON);
/**** LOGS JQUERY REQUEST STATUS. POSSIBLE VALUES: "timeout", "error", "abort", "parsererror" ***/
console.log(textStatus);
/**** LOGS HTTP ERROR IF ANY ***/
console.log(errorThrown);
}
相关文章:
- 信息窗口谷歌地图点击事件给出错误
- jQuery:获取图像加载错误的详细信息
- 为什么我的javascript传递了错误的信息
- 保存通过Ajax返回的信息后出现$_POST错误
- 从回调中获取更详细的错误信息
- 如何在调用AJAX时记录或捕获信息和错误
- Javascript:图像对象的oneror事件有哪些参数?如何获取与图像相关的错误的其他详细信息
- jQuery click()多次输出错误按钮的信息
- Google Maps API V3 信息窗口错误:“信息窗口未定义”
- 谷歌地图API:信息窗口在错误的位置
- 处理 nodejs 错误并提供不同自定义消息详细信息的最佳方法
- Chrome 扩展程序 - GCM 通知会引发错误,但信息已存在
- 谷歌地图 api v3 - “信息窗口未定义”错误
- 需要模块的JS加载超时:错误详细信息
- 致命错误:cpvlap 统计信息中不支持的操作数类型
- 通过单击“MVC 获取错误”中的“下一步”按钮 asp.net 在同一详细信息页面上显示记录
- 使用错误的方法在地图上显示来自 JSON 的信息
- 是否有可能提供诸如 404 页面错误之类的信息,用于禁用 JavaScript
- Ajax 发布错误,没有进一步的信息
- Visual Studio多设备混合无法获取包信息错误