我正在使用JSON.parse
有时包含404响应的响应.在它返回404的情况下,有没有办法捕获异常然后执行其他一些代码?
data = JSON.parse(response, function (key, value) {
var type;
if (value && typeof value === 'object') {
type = value.type;
if (typeof type === 'string' && typeof window[type] === 'function') {
return new(window[type])(value);
}
}
return value;
});
Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本,该脚本使用XMLHttpRequest来搜索由相对路径定义的文件,尝试解析该脚本可识别的其他相同域绝对路径的相对路径,然后尝试从已解析的文件中加载该文件网址.如果我遇到404,我只是尝试将文件相对路径解析为另一个绝对路径,然后再试一次.对于这个特殊的脚本,它完全可以遇到404-然而,我的控制台上到处都是"无法加载资源:服务器响应状态为404(未找到)消息,我想要抑制它们.
据我所知,没有错误可以捕获 - 错误情况由xmlHttpRequest.onreadystatechange处理程序处理,并且没有window.onerror.
有没有办法压制这些消息?
谢谢
javascript google-chrome xmlhttprequest google-chrome-devtools
当我的页面通过XHR加载内容时,如果用户单击停止按钮或单击转到另一个页面,则会调用XHR error()函数.除了在页面上看到大量(红色)错误消息的用户震惊之外,这通常不是什么大问题.
消息是有效的 - 检索内容确实有错误 - 但这是由于用户交互,而不是因为系统故障.
有没有办法区分(404 | 500 |超时错误)和用户点击浏览器的停止按钮导致的错误?
编辑:我正在使用Dojo(因此错误函数引用),但我相信这将是任何XHR实现中常见的情况.调用error()时,我将查看xhr对象的readyState
我有这个代码:
$.ajax({ cache: false,
url: "/Admin/Contents/GetData",
data: { accountID: AccountID },
success: function (data) {
$('#CityID').html(data);
},
error: function (ajaxContext) {
alert(ajaxContext.responseText)
}
});
Run Code Online (Sandbox Code Playgroud)
我仍然对ajaxContext以及如何捕获404返回码感到困惑.不过我有另一个问题.我正在阅读有关成功编码和失败的内容,并且在最近的jQuery版本中不再使用错误.
所以我应该改变我的代码使用完成和失败.那怎么能检查404?